Support date partitioning with JSON data.

Commit message says it all.

I also updated the Thrift code to support fields other than `timestamp`.

CC @pgarbacki @andykram
There is a lot of code duplication between JsonMessageParser and ThriftMessageParser. How about creating a common parent class, something like TimestampMessageParser, with an abstract protected method called extractTimestamp() and letting subclasses implement that method only?