Untangle a few objects

I'd like to try to untangle some of the object dependencies.

Currently sensors depend on board and modifies it in some way. They require their own `Board` mainly for `Board.Device` and `Board.mount` but I haven't yet dived into how exactly those work. `Board.Options` is also needed all over the place.

Currently `Board` requires `Board.Pins` which requires `Board` for it's `Options` object. 

I moved `Board.Pins` and it's tests into it's own module `Pins`. And because it required `Board.Options` I moved `Options` into it's own module too. Now you can have a `Pins` and test it without a board. And you can have an `Options` object anywhere you need it without anything else.

I'd figured I'd get some feedback before I kept pulling things apart.

-Francis