various improvements from MapBox 0.5.0 release

Here's our combined commit from a recent release to bring relevant generally-useful functionality up to date. 

As always, feel free to let me know if you don't want any of this and I can adjust the pull request as necessary. In particular, the project reorganization stuff might not be appealing, but personally I like it better and it helps separate use of the code from in-depth development on it, which is nice for users in the former category. 

Also per usual, I haven't updated the sample projects as we don't keep these in our version, but nothing drastic should have broken. 

* Added support for MapKit-like annotation callouts. (mapbox/mapbox-ios-sdk#23)
* Added methods and a delegate to `RMTileCache` for proactive background downloading of map tiles. 
* Added support for Bézier curves in `RMShape`. (mapbox/mapbox-ios-sdk#148)
* Improved shape hit testing based on fill rule. (mapbox/mapbox-ios-sdk#166)
* `RMShape` now automatically sets its annotation's `coordinate` and `projectedBoundingBox` after drawing updates. (mapbox/mapbox-ios-sdk#109)
* Adjusted `closePath` method in `RMShape` to more reliably close the path. 
* Sublayer bug fix. (mapbox/mapbox-ios-sdk#113)
* Allow all types of annotation layers to receive touch events. (mapbox/mapbox-ios-sdk#129)
* Added annotation `enabled` property to enable/disable touch events. (mapbox/mapbox-ios-sdk#141)
* Moved to resources bundle for assets like images. (mapbox/mapbox-ios-sdk#119)
* Cleanup of project structure & resources for clarity. 
* Removed `armv6` build architecture. 
* Added Interface Builder support for `RMUserTrackingBarButtonItem`. (mapbox/mapbox-ios-sdk#106)
* Fixed a bug related to user location authorization status changes. (mapbox/mapbox-ios-sdk#101)
* Fixed some pointer initializations. 
* Moved from `alloc`/`init` combo to `new` per new conventions. 
* Added tile cache capacity getters. 
* New method to set zoom level with animation. (mapbox/mapbox-ios-sdk#46)
* New method to set both zoom/center at same time, optionally animated. (mapbox/mapbox-ios-sdk#46)
* Removed `RMPath` since it's long been replaced by `RMShape`. 
* Added ability to customize user location annotation layer like MapKit. (mapbox/mapbox-ios-sdk#133)
* Fixed bug with zoom level setter not registering user events. 
* Allow attempted duplicate adding of annotations without actually duplicating them like MapKit does. (mapbox/mapbox-ios-sdk#169)
* Fixed bug with user halo animations when in compass tracking mode. 
* Properly set marker `contentsScale` based on supplied image. 
* Removed extraneous method logging. 
* Fixed bug with `layoutSubviews` related to constraints-based layout. (mapbox/mapbox-ios-sdk#142)
* Improved inline documentation. 
* Minor code consistency tweaks.