Add PWM and MCP230xx support.

Bumping library version up to 0.4.  No breaking changes were made to the interface of existing classes.  New features include:
- Base GPIO class has a new output_pins() method which allows setting multiple GPIO pins at once.  This is useful with the MCP230xx GPIO extender changes further below as it it improves performance to batch multiple GPIO changes into one update.
- PWM support using the RPi.GPIO and Adafruit_BBIO libraries (with platform detection similar to the GPIO support in the library).
- MCP230xx (MCP23008 and MCP23017) I2C GPIO extender support.  MCP classes have the same interface as other GPIO adapters and can be used anywhere the existing GPIO classes are used.  This allows existing libraries/devices that use the Adafruit_Python_GPIO library to be connected to an MCP GPIO extender without any changes.