Clean up the HTTP endpoint naming and avoid unnecessary JSON serialization

This commit does two things:

1. It moves the HTTP endpoints around so that they're a bit more
   typical. The user-visible page is now at `/`, with the API endpoint
   namespaced and versioned.

2. It moves JSON serialization from the `whats_on_top` internal
  function to the sinatra hook, avoiding serialization when we're
  using the structured data internally.