Refactor all the filter objects and make API a singleton

I'm no longer passing an api object around, it's now a single instance of FinderApi (which no longer stores a slug) living at FinderFrontend.finder_api.

FinderApi implements the same interface as GdsApi::FinderApi, so it can easily be switched out when the stubs aren't needed any more.

The parsing of the api's hash representations of objects is now handled  by a series of parser objects.