Big 2.0 refactor: 1) Jasmine for tests. 2) Q promise based API with delegate objects for the async callbacks from the native layer. 3) Replaced the target from the global window object into window.cordova.plugins.LocationManager (the IBeacon root object is now deprecated) 4) New library dependencies: Q, underscorejs, klass. 5) The plugin can now monior circular regions as well, not just beacon ones. 6) It is now possible to enable/disable debug logging into the device logs. 7) New API call to append messages to the device logs, directly from the DOM
Fixed IDE warnings in the JSDoc of LocationManager.js
Regions.fromJsonArray returns a new array instead of mutating the one passed in as a parameter.
Removed logging that was not necessary and a code statement which was used for debugging only.
Regions.js => Fixed up documentation a little, applied IDE formatting.
Fixed the order of positional arguments in the Region subclass constructors. Added tests to check if the constructors are working fine.
Added missing require call in Regions.js, it had a new dependency (Region.js) which wasn't included.
Slight improvement in the documentation.
Prefixed internal methods of LocationManager with an underscore character. Fixed some IDE (WebStorm) warnings in LocationManager.js.
Fixed typo in the documentation of BeaconRegion.js
Problem: Callbacks are not always fired when the app is being woken up by the OS to handle LocationManagerDelegate based updates.
Solution: In the native layer the firing of callbacks are queued until the delegate's callback ID is registered. In the DOM, there is a small change in how the delegate callback mapping happens, namely the plugin results which have an event type get precedence first.
Problem: isRangingAvailable and getRangedRegions related tests were failing on iOS 6.x.
Solution: Implemented a graceful fallback with warning messages, tests are now passing.
Removed verbose logging from delegateSpecs.js.
Added extra error logging to the monitoring related tests in locationManagerSpecs.js.
Fixed the parsing of circular regions on iOS 6, the tests are now passing on iOS 6.
Added very basic iBeacon monitoring test (can't really test it in the simulator).
Improved failure logging of promises in the tests.
Implemented synchronization between the DOM and the native layer. LocationManager.setDelegate now implicitly notifies the native layer that it should start emptying the queue of messages it has piled up in memory.

The default implementation of the Delegate callbacks are now including logging statements. This is to make it quickly obvious if someone didn't set a delegate.
Rewrite of Android support using V2.0 design
Clarification of beacon region type for ranging calls
Added more thorough debug suppression (but can't stop Android BlueTooth API debug stream)