Introduce Shopify Partitioner to store files in same file hierarchy as Albert

The Camus DefaultPartitioner stores files in HDFS in the following path:
/<configurable_root_path>/<kafka_topic>/<time_granularity>/<year>/<month>/<day>/<hour>/

The <time_granularity> component defaults to 'hourly' and is mandatory.

The path that Albert uses to store data is
/<configurable_root_path>/<kafka_topic>/<year>/<month>/<day>/

This PR introduces the Shopify Partitioner that is 99.9% identical to the Camus
Default Partitioner with the exception that the <time_granularity> component is
no longer mandatory. This means that we can have Camus write to the exact same
location as Albert and so we don't need to manage two input paths for each topic.