Refactored abstract Pwm class.
Removed pwmSetDutyCycle function, added pwmSetEdges function.

Single edge mode supported through
pwmSetDuration function. pwmSetEdges is limited to setup
trailing edge only, leading edge should always be zero.

Center aligned mode controlled through both functions.
Duration setup in such mode sets leading and trailing edges
centered around initial phase. Phase may be changed through pwmSetEdges
function, leading and trailing edges in this case should have values of
Phase - Width / 2 and Phase + Width / 2.

Double edge mode supported through pwmSetEdges function.
pwmSetDuration updates a duration of the pulse by changing a trailing
edge time, beginning time of the pulse remains the same.
Updated GpTimerPwm class.
Added support for GpPwm on LPC17xx.
Single edge mode is implemented.