[Rust] move parquet into a separate sub-crate
It just occurs to me that it may be a better idea to move the parquet
module into a separate sub-crate by using cargo workspaces
advantage is that we can make the project more modular (in future, we may
want to add more sub-crates such as arrow/parquet_derive, orc, gandiva,
etc), and allow us to run CI jobs separately on each crate.
Some small caveats:
1. Cargo doesn't allow cyclic dependency. So if the parquet sub-crate
depends on arrow, we can't reference parquet in arrow. This doesn't seem
like an issue though since arrow itself should be physical on-disk format
independent. I also didn't see any reference on parquet in cpp/src/arrow.
2. The path dependency used in workspace has to be changed to a version
number when we do "cargo publish". This should be added to the release
instructions and committer who performs the job should do the extra step.