This renames Smart* to BLE* and removes the smart recognition. It
is replaced by knowing the type of what we're interested at use
time only. Only printing Service lists is now dumber.
Interal variables to _bleio classes are now public as bleio_*
instead so that other classes in the library can access them and
its clearer what they are.
This makes Advertisement and Service definitions declarative by
factoring out parsing logic out into shareable descriptor classes
similar to how the Register library works.
This also introduces SmartAdapter and SmartConnection which will
auto-create the correct Advertisements and Services without requiring
any direct use of UUIDs. Instead, classes are used to identify
relevant objects to "recognize".
This requires https://github.com/adafruit/circuitpython/pull/2236 and
relates to https://github.com/adafruit/circuitpython/issues/586.
Fill in initial details after cookie-cutter creation.
Eddystone URL Beacon works; LocationBeacon works but why wrong endian??
fix typos; add comment re big-endian UUID's in LocationBeacon
Do UUID parsing in Python; beacon comments touchup
Add UUID __repr__
don't subclass bleio; add PeripheralServer and UARTServer
strawman uart
Use CharacteristicBuffer.