[Bluetooth] Add BluetoothAdapter.setChangeListener + fixes

This series add support for the BluetoothAdapter.setChangeListener API, which allows for applications to be notified about changes in the local Bluetooth adapter.

Also improved are verification for the types of parameters that we receive, added were an object verifier, in a couple of places we receive an object that have attributes that should have their types checked, and a Bluetooth address verifier, which uses a simple Regular Expression.

Also noted during tests, was that the Tests consistently try to stop a discovery session even though there's none running, from that we assume that the only case that stopDiscovery() should fail is when the adapter is not powered on.