Board class refactoring

- Move Firmata and SerialPort to conditional load
- consistent behavior when explicit IO plugin is provided
- base support for "guessing" platform (ie. Galileo or everything else)
- Updated tests

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Create optionalDependencies entry

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
v0.7.21

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>