Various changes to support timemap.js fork

As [discussed here](https://github.com/mapstraction/mxn/pull/50#issuecomment-4147314), I merged the latest master into my fork and did my best to clean it up and resubmit the pull request. The merge for the microsoft provider code was a bit ugly, as somewhere along the line tabs were converted to spaces, making the merge trickier, so hopefully I didn't stomp on anything there.

The main changes here are still:
 * fixes to BoundingBox
 * click events and bubble methods on Polyline
 * bubble methods on Mapstraction
 * various provider-specific tweaks and fixes

Please let me know if I can help clarify any of this.