Kill in-flight AJAX requests

Each time the user changes an input form (ie by scrolling up on the tide
level input) we fire off an async AJAX request which, on return, updates
the results box.

If the user rapidly changes the input box (eg by scrolling) then lots of
AJAX requests get fired off.

There is potential for these to come back out of order, or for some to
fail, in which case we would display the wrong data. Furthermore each
request puts load on the server.

This commit introduces a singleton object which wraps the jQuery ajax()
method. If there is already an AJAX request in flight, it is cancelled
before sending the new one.

https://www.pivotaltracker.com/story/show/74647310

[Delivers #74647310]