Split parser data definitions into separate crate
Summary:
For the sake of build times and component clarity, this commit splits out a number of data definitions out of the `parser_rust` crate into a new crate, named `parser_core_types`.
This crate is intended to be used for data definitions and not parser code. I think the ultimate goal here is to place a lot of the generated code (especially the smart constructors) into this crate so that the parser crate consists of just parser code.
For now, this commit preserves the existing library surface area as `parser_rust` by re-exporting the `parser_core_types` types. This prevents downstream consumers of the parser from having to change their code at this time. A future codemod could go and address this if this is a problem.
Reviewed By: losvald, dabek
Differential Revision:
D16796993
fbshipit-source-id:
cbd3b55bb48d986fe247814f5a40b6a994cf4415