Adding Builder methods to PartitionStrategy.

This commit adds new methods to PartitionStrategy.Builder that
automatically name the partition. In practice, most strategies name the
year partition "year", the month partition "month", etc. The new methods
use these names rather than forcing the user to add them. Now, code
looks like this:
  PartitionStrategy strategy = new PartitionStrategy.Builder()
      .year("timestamp").month("timestamp").day("timestamp").get()
Adding DatasetExistsException.

This is now thrown by HCatalogMetadataProvider when the metadata already
exists, rather than warning and returning.