Update to allow direct addressing of pins, and GPIO string decoding

Constructors now take strings to allow direct addressing. I.e. InPin("1")

Using the Beagleboards naming scheme will decode to the correct GPIO Pin. So Inpin("GPIO1_23") will decode to GPIO("45");