Overheards may be listed as JSON

A relatively tiny change to the `get "/"` route allows us to expose a
json representation of our overheards! Hooray!

It also looks like we're getting some duplication; especially with our
`if request.accept?("whatever")` and `JSON.dump` bits.

This is an indication we could do some refactoring!

Why I changed the tests:
------------------------
* Again I misused `rack-test`. If you want to send headers, apparently
  you have to give it a body, even if it's a GET request! Ah well.
* `assert_equal` provides better output on failure than just `assert`.
Extract `render_json` method

This is similar to the `erb` method that we use to render HTML; however
it takes a hash of data to render as JSON in the response body instead
of a symbol representing a file in `views/`.

It gets rid of the `content_type "application/json"` and the `JSON.dump`
duplication; which makes our routes a little bit more human readable
Force ordering by created at

Sometimes my listing as jsonstest would fail for no obvious reason.
Turns out DataMappers `all` method doesn't enforce ordering by default.

We're telling data mapper to order results by the `created_at` field of
the `Overheard` model; and to put the largest (i.e. most recent) at the
top. [Documentation](http://datamapper.org/docs/find.html) (Search for
"Specify the order")