Restructured controller module.

Made the ColorController into a more suitable BaseController. Removed the 'Connect' classmethod in favor of an instancemethod that handles connecting based on a given dictionary with connection settings. ConnectFirst has been moved to FirstDevice which makes better use of the new _Connect method.

Added an Info method to the controller that can be used for the JSON API so that the API doesn't have to make assumptions.

Dummy controller can now be used without a connected serial device, which should make things easier for development.