Add an abort routine to Caldav.Xhr

@lightsofapollo This is a large diff relative to what was actually changed hehe. In summation:

1. I added an abort method on Caldav.Xhr. It simply calls abort on its xhr request if it's waiting.
2. I changed all of the send methods that make xhr requests and accept callbacks to return the Caldav.Xhr object so that the caller can call abort on it.

This, in theory, should help us back in gaia land :).