B+ Revision check & Pins

This was my attempt at creating a PR for issue #8. I was not sure what to do with the hackablePins array as I'm not entirely sure what the purpose of that array is. Hope this helps get things up to date for the B+. Changes seem to be working okay with mine when it comes to reading pins, have no started messing with blinking pins.
I ran unit tests locally and all passed. I cannot really elaborate because bit banging is not my strong suit. Essentially hexdec() already converts the revision number (given in hexadecimal) into a proper integer for all existing revisions. The AND operation has no effect I can discern. However, when doing a bitwise AND operation with 0xf it returns 0 for revision 16. The operation would be: 16 & 0xf. 0xf in PHP gives [1111] binary and when ANDed to the 4 least significant bits of 16 [10000] gives 0, dropping the most significant bit. Again, this is not my area of expertise as it has been many years since I played with binary and hex - let alone with PHP, but essentially the operation appeared to be useless to me when hexdec() returns a proper integer for revision checking.

You made need find a different way to check if we are on a raspi in your unit tests. I changed the hostname of my raspberry pi and had to make a few edits since `uname --nodename` was not returning the expected result. Once I made the change in a few places all tests passed.