add signal controller, user command interface

- reorganized hardware controllers into class BatteryController,
MotorController, and SignalController
- redefined discharge/charge voltages relative to MAX_ / MIN_VOLTAGE