Architecture reorganization

- Moves code into a more standard filesystem layout
- Introduces a `setup.py` file for consistent packaging
- Creates debug classes for GPIO and serial
- Converts from command-line-based to config-file-based
    - Much more useful, long-term
- Splits tangentally related pieces of code into "Aspect" classes
    - Each one can be selectively enabled/disabled with one line of comment
    - Changing a feature now affects just that feature without worrying about the surrounding code