DRILL-7314: Use TupleMetadata instead of concrete implementation
1. Add ser / de implementation for TupleMetadata interface based on types.
2. Replace TupleSchema usage where possible.
3. Move patcher classes into commons.
4. Upgrade some dependencies and general refactoring.