Completed basic search UI

This required fairly substantial changes to the way that data was being
returned from the server. Rather than manually constructing JSON
strings, we are now making use of the serializers we use elsewhere in
the application to format data.

We are still missing the ability to filter by query type on the right
side.