Connection manager refactoring
This branch refactors ConnectionManagerImpl's inner classes into top-level classes, and moves ConnectionManager and ConnectionRegistry into their own package.
This is a prerequisite for some changes to connection management to help us stay below the Bluetooth connection limit.
Part of #1712 (closed)