Implementing the search API to use a Google Search Appliance backend.

This also improves the way exceptions are used to invoke HTTP error responses.
Rather than add a new exception for every HTTP response type, @barnabycourt and I agreed that using one exception that could take a response code and a message is simpler.