fully implement direct pin

I noticed I couldn't use NewDirectPin with a beaglebone due to not implementing the full interface. 

I went ahead and took a first crack at getting it working. This should also make button and makey_button work.