Pinmode refactor, referencing issue #48

So a couple of changes in this pull request regarding pin modes:

- -1 is now a valid pin mode, and it means the pin is disabled.  A disabled pin will have no events fired.  All pins start in a disabled state.

- You still set your pin modes in the startup() function.  The way reporting works, this *should* still keep HQ in sync.

Would love review and discussion about if this will work for everyone!