Renamed EOF -> SS_EOS. Removed ending EOSes from static arrays
[minor] Added some assertions, fixed warnings, removed useless code
Tweaked buffering scheme

Now the full CONTEXT_BUFFER_SIZE is filled if input stream contains
no surrogate pairs.

Also modified the tests to account that.
Merge branch 'eof-fixes'

Now the end-of-file/end-of-stream character is really
a sentinel -- not a (technically) valid Unicode one.