Debugging serial communication with Arduino

Working, but needs to be tightened up and refactored.
Fixed Bug with slaved digital outputs

Pulseblaster was outputting the first ramp line last for slaved digital
channels. Fixed here; @ZJ also fixing on master branch since it is a
rather insidious bug.
Updated serial communication protocol; bug fixes

SetList now communicates entire setlist to Arduino in a single line, and
SetListArduino should parse out individual commands after receiving the
entire packet.

Also fixed:

* Prepare/FinalizeHWI now separated out as needed to ParseSWI &
Prune/BuildHWI. Prepare and Finalize are simply parent calls.
* Fixed bug in which PruneHWI didn't remove lines based on ramplist, ie,
disabled lines from grouping were still sent to Arduino.
* Generic refactoring of some code
Finished up Arduino device

Miscellaneous changes, some of which may or may not be important since
last commit. But everything appears to be working now.