Fix digitalRead and add support for shiftIn and shiftOut.

- I seemed to have found a bug in digital read which I fixed.
- I added support for the shiftIn and shiftOut commands.
    * http://arduino.cc/en/Reference/ShiftIn
    * http://arduino.cc/en/Reference/ShiftOut

Also I added a _buildCmdStr method to encapsulate the command string format.  Would you approve of factoring that functionality out of the other methods as well?