Support PWM on multiple pins

API suggestions encouraged.

The commit linking `Pin`s back to their `Port` makes the printing of pins way uglier. The PWM frequency could be a global instead of a `Port` property if it had to be, because there's only one port with PWM.
I think negative is better so the same convention and error codes can be used with functions that return sizes or other positive values.