Support AltBeacons

Working towards #70. Feedback appreciated.


Issues:

- [x] Foreground scanning is constant
- [x] Background scan timing is once every 30 seconds
- [x] `didExitRegion` never seems to get called - inconvenient, because it makes it hard to tell if the phone is in range of a beacon at any given time
- [x] 
The beacon message is a different than the existing iBeacon message. The main difference is that distance is given in meters as a double rather than Near/Far/etc. For the time being, I've also included some BT info - beacon manufacturer, etc
 Still a little different, but much closer now.
- [x] 
No rate limiting - when a beacon is found, it publishes a MQTT message for every BLE report (could be as high as 1Hz). Should be modified to push a report when beacon first found, maybe every meter of change (?), and when beacon is no longer detected

- [x] Beacon message class not idiomatic, is hastily thrown together
- [x] 
Untested for reliability; I'm trusting the AltBeacon library to do its thing (and trusting that I'm working with it perfectly, which is unlikely)

- [x] 
No battery saving mode - to do this, I think I need to get at the Application.context from my Beacon ProxyService. Haven't looked into this very deeply, may be mistaken.
 Doesn't seem to have hit my battery too hard. Will reserve this for a future contrib if necessary.