better handling of beforeSend

Upon a 'click' event the node & event is stored in the passed options object for reference. This can then be used in the success/error/complete callbacks, i.e. to manipulate the DOM of the clicked element (e.g. show/hide a loading spinner).
The beforeSend is now a returning function instead of a callback event. This allows the beforeSend to cancel the click event and/or the fetch by returning false.