Global:
Added logic so any service can forward a receive notification from a periphera, when is not meant for that object. Only UART and Notification have right now. Need to add it to the others.
Fixed bug where sending multiple 20+ byte/characters-long messages would break the communication. Increased the global time cap (throttling) to 60ms.
Updated the whole app so all the theme can be updated in one place.
Added functionality so users can update the BLEduinos's device name OTA (i.e. GAP Device Name, via BLE-Bridge-Rx), via the BLE manager. This work-around was done wth BLE bridge because iOS blocks the GAP Device Name characteristic.
Fixed code, across all characteristics, that did not free some memory that wasn't getting retained, when converting the characteristics was converter to a byte array. This saved us from potential memory leaks.

Proximity:
Finished the proximity module revamping. Now it works with ranges (Immeadite/Near/Far). However, it shows current RSSI values as well.
Added proximity distance settings menu so users can update the RSSI thresholds for the distance ranges.
Fixed typos on calibration explanation message.
Refactored the proximity logic to an easily available object BDProximity.
Added logic to display some estimated distances on the proximity module.

Keyboard:
Was updated to handle logic of sending 20+ bytes-long messages, on the module rather than the UART service. This was done to go give complete control to the user to decide how to handle UART best.

LCD:
Was updated to handle logic of sending 20+ bytes-long messages, on the module rather than the UART service. This was done to go give complete control to the user to decide how to handle UART best. Additionally added logic to embed a status byte (starting/on-going/finished) on each transmission so the BLEduino knows when the entire message has been transmitted. This is done to keep the LCD module completely agnostic to the size (rows/columns) of the actual LCD connected to the BLEduino.