Date filtering facet

In order to allow users to filter on a date, we need to add a date filtering facet. Screenshot:

![screen shot 2014-09-22 at 14 35 11](https://cloud.githubusercontent.com/assets/449004/4356831/4ed6708a-425d-11e4-97f4-b3527c09b12d.png)

This works by allowing the user to filter a range, `from` and `to` based on the key in the schema. 

While working on this, it became apparent that the way the filter sentence was being constructed wouldn't work with these, so this was also refactored. Now, each facet returns it's on sentence fragment. They all basically work the same, with the `select_facet` and `date_facet` having multiple values with `radio_facet` only ever having one (though it's also in an array as the front end always treats them as arrays).

@alicebartlett also refactored some the CSS with this work and added the frontend code necessary for the date facet.

For this to be displayed, it relies on a schema having a date facet, such as [this PR](https://github.com/alphagov/finder-api/pull/56) for AAIB. [Ticket](https://trello.com/c/0nHLAD4G/294-finder-frontend-add-support-for-a-date-filtering-facet-2).
I think this method is doing too much. As a first step, I'd try and extract the `sentence_fragment` stuff to its own method:

```ruby
def fragment_description(sentence_fragment)
   [
     sentence_fragment.preposition,
     fragment_values_sentence(sentence_fragment.values)
   ]
end

def fragment_values_sentence(values)
  values.map { |value| fragment_to_link(value) }.to_sentence(last_word_connector: ' and ')
end
```

The names are pretty terrible but more domain knowledge might help with picking better ones :)

Then I'd maybe try and push some of this logic down into the sentence fragment itself -- which would require changing the fragment to be an object in its own right rather than an OpenStruct.