Support for partition caching.

Notes:
- Added a SparkDDLTask that is dependent on Hive's DDLTask.
    - Makes it possible to create cached tables (partitioned or not) using a regular CREATE TABLE command.
    - With additions to SharkDDLSemanticAnalyzer, it should be possible to support more DDL commands, such as ALTER. I haven't added ones such as table drop protections and ALTER TABLE ... RENAME TO .... , but it should be simple to do in a subsequent PR.
- Didn't include support for partition pruning on RDDs representing Hive-partitions. Will add support in another PR.