Feature softserial

Preview of softserial code is here

This pull request is only for reference, do not merge it. I'll rewrite history in my branch.
The not operator here seems to be the cause of the inversion on the TX line when the port should in non-inverted mode.