Change how errors are handled.

Return errors from all methods that can fail instead of having a
separate method to check for an error.  This is more idiomatic Go, and
makes this easier to use.
Make rpi implementation use new interface.

Was importing gpio package from wrong location, so didn't fail when the
base package was updated.
Add dummy darwin implementation.

This will allow tests etc to be run on darwin machines