Tidy up ManualPresenter

- Treat the input as objects rather than a hash (it's all structs at the
  moment) by using method calls instead of `#[]`
- Use `delegate` to replace simple getter methods
- Use string interpolation instead of concatenation
- Tidy up indenting
Only show topic and org metadata when non-empty

Because the presenter now always returns a collection `@manual.topics`
will always evaluate to true, so we use `#any?` to check if there
actually are any topics (and likewise for organisations).
Use the actual updated_at date

Pull the updated_at date from the content api response instead of
hardcoding it. Tweak the `long` date format to suit our needs.
Recursively turn JSON into an OStruct

When loading sample data from JSON files we want it to act like an
object all the way down, not just at the top layer. This matches the
behaviour of data returned by gds-api-adapters.
Add updated_at date to EIM JSON
Merge pull request #37 from alphagov/make-updated-at-work

Make updated at work https://trello.com/c/m8eKIUIH/114-manual-updated-date-is-hardcoded-to-23-january-2014
Add breadcrumbs for other manuals

- remove breadcrumbs from immigration
- use the manual in the document presenter to contruct breadcrumbs
- only use document['details']['breadcrumbs'] if present

The last change makes it so that if we don't send the breadcrumbs in the
response, it will just construct them from the manual.url >
document.url