Implementations of this trait are used to represent dates and date math
in elasticsearch requests.
There are three types of elastic date you can create.
The first is just a wrapped string with no extra help: UnparsedElasticDate("mydate||/d")
The second is a wrapped timestamp: TimestampElasticDate(1113232321L)
The third and most useful is the ElasticDateMath which allows you to programatically add
or subtract values, as well as add a rounding, and it will create the appropriate date string for you.
For example, ElasticDate.now.minus(3, Months).add(1, Days).rounding(Weeks)