Fixes and stuff for pin control

Pin control code has been significantly changed. 
* The GPIO pins that can be exported have been restricted to those at least known to be (usually) unused. 
* You must explicitly export pins to be used for the pin_test module
* PWM works, with a few caveats. pwm0/1, pwm3/4 and pwm5/6 are linked (channels a/b of the same pwm module), so their frequencies (ie period) must be equal. To change the frequency if both get activated, the other one must first be unexported. Or, just use pwm0, pwm2, pwm4, pwm6, and pwm7 and ignore the rest. Then you're guaranteed not to get those period conflicts.
* All pin control code has more error checking. All pin control read methods now returns true/false success status, and the return value is stored via a pointer from input.

There's a simplified pin out diagram under notes/pin maps. This explains everything. May have errors. Hopefully not.