Query DSL: Cache range filter on date field by default

A range filter on a date field with a numeric `from`/`to` value is **not** cached by default:

    DELETE /test

    PUT /test/t/1
    {
      "date": "2014-01-01"
    }

    GET /_validate/query?explain
    {
      "query": {
        "filtered": {
          "filter": {
            "range": {
              "date": {
                "from": 0
              }
            }
          }
        }
      }
    }

Returns:

    "explanation": "ConstantScore(no_cache(date:[0 TO *]))"

Closes #7114.
@martijnvg The more I look at this, the more I think there something wrong here.
I tried to fix an issue when you explicitly set `_cache:false`. But in that case, even if you don't want to cache the filter, as soon as you don't use `now`, it will be cached because of `|| !hasNowExpressionWithNoRounding(value)`.

That's what we have in the past, so it's not a regression here.

Though, I think I need to update the PR with that finding.

Will rebase on master as recent changes - support `timezone` - created a git conflict.