This pull requests adds I2C and SPI support and improves the PWM existing support

This pull request adds the I2C and SPI support to Erlang/ALE and improves the PWM existing support.
The C source files are documented with Doxygen while the Erlang source files are documented with EDoc.

Changelog

== Added instruction to compile PWM, SPI, I2C and to generate documentation ==
- Makefile

== Added I2C support ==
- c_src/i2c_ei.c (I2C erlang interface)
- src/i2c.erl (I2C gen server)
- src/i2c_sup.erl (I2C supervisor)
- examples/i2c_demo.erl (I2C demo for the esl demo board)

== Added SPI support ==
- c_src/spi_ei.c (SPI erlang interface)
- src/spi.erl (SPI gen server)
- src/spi_sup.erl (SPI supervisor)
- examples/spi_demo.erl (SPI demo for the esl demo board)

== Improved PWM support ==
The old PWM support was converted in a gen_server and a supervisor for it was added.
- c_src/pwm_nif.c (PWM nif library) 
- src/pwm.erl (PWM gen server)
- src/pwm_sup.erl (PWM supervisor)
- examples/pwm_demo.erl (PWM demo for the esl demo board)

== Other ==
- doc/doxygen.conf (doxygen configuration file for generating the driver documentation)
- src/port_lib.erl (removed debug message)