Add Terminal abstraction.

Provides GetChar() and Print() services for programs that would normally
interact with the terminal.
Fix Windows impl. of Terminal.
Remove unneccessary include in Posix impl.
Prevent property change callbacks running before a change is received.  This will only have a noticeable effect with services that have optional state variables.
Merge branch 'master' of ssh://core.linn.co.uk/home/git/ohnet