New timer implementation

This is first part of new softserial code. Main timer code is changed, changes to rest of code are kept to minimum.

This code does build fine, but is only lightly tested on real hardware.

Maybe new branch should be created to test it before merging into master