Typeahead module: handle failures

See #158, also should try/except all requests exception, do appropriate logging and return empty list or more specialised exception that can be handled by the application.

The aim is to provide partial availability. If, for example, the mobile oxford API wasn't available, the event view page should not error but simply not display the details of the venue.