Rudimentary BT device detection

As we want to switch form iBeacon to Core Bluetooth, this commit introduces a (very rough) device detection via Core Bluetooth. It’s still kind of hackish and lots of old beacon code is still in there, working on it :-)
Removed iBeacon Classes

This commit goes further in switching from iBeacon to Core Bluetooth. We removed all iBeacon classes and added the correct delegates to the Core Bluetooth classes.
- “ID”s are now called identifiers
- CWBluetoothAdvertiser creates an identifier UUID - since we can send arbitrary data as an identifier, why not use UUIDs?
- all delegate methods have been renamed properly to incorporate the notion of “devices” instead of “beacons” and “identifiers” instead of “IDs”
- CWDeviceID is not needed anymore and was removed
- when detecting a new device, no proximity is sent anymore. A proximity update will be sent shortly after the discovery anyway
- device detection notification of CWWebapplication is now done after we received a unique ID from the connected peripheral, not immediatly when we discover the peripheral. This is necessary because without an ID, we cannot identify the peripheral later on if we don’t have an ID.
Sending identifier to centrals
This means we now actually send newdevice and deviceproximitychanged events to the web library :-)
Improved device distance changes

- CWBluetoothConnection now adds RSSIs into an exponential weighted moving average, reducing jittering but still allowing us to react to moving devices quickly
- CWBluetoothMonitor uses the new averageRSSI to calculate the distance
- CWBluetoothMonitor furthermore introduces constaints on when a distance update is sent so we don’t flood the web library
First rough rewrite of the BT classes

- BTMonitor and BTAdvertiser will be merged into the BTManager. While this will make the BTManager a rather huge class, it also allows us to streamline BT-related code and to keep everything related to BT communication in one place
- The BTMonitor is just a draft for now, its by no means complete
Implemented Device Detection in BluetoothManager

Further expanded BluetoothManager
- devices are now detected
- device distance changes are detected
- initial data transfer from peripheral->central is possible
- IP transfer from central->peripheral is possible, but the IPs are not further processed yet
- delegate callbacks implemented

- some other minor stuff
Remote Device Connection

A device can now request a remote device by sending its IPs to the device. The device will figure our the IP and open up the remote webpage which establishes a websocket.
Still lot’s of stuff missing, though:

- We can’t do anything with the websocket connection for now
- We don’t have a mechanism that puts the device in remote mode, preventing it from accepting further requests and performing requests and other stuff itself
- The code is still kind of all over the place, we can probably clean some thing up here
- Dead Lock Problem still unsolved: What happens if two devices request each other as a remote device at the same time?
- deviceLost for both discovered and remote devices is still not implemented
Added remote webpage

Added webpage that is opened by remote devices and the first draft of the remote library