Replace context with Mark struct

- Context and position are unified in the Mark struct
Changed so Restricted chars are no longer ignored

- Ignoring Restricted characters caused problems when peeking method so it was fixed
Add test for restricted character; Fix so test for restricted chars pass

- Peeking restricted characters caused problems because they were ignored
  by the buffer. The buffer serves to store peeked chars, so there is
  less backtracking on the stream.
   * For this purpose a read_str_raw method was added that doesn't ignore
     restricted chars. Once that method passes the peek then strips all
     restricted chars, while preserving errors found.
   * Fix for early end of file was also added to avoid end of file, once
     stream reaches end, but there are stuff in the buffer.
Implemented some method for Character enum; Expand test

- Character enum lacked convenience methods, so they were added.
- A test case was expanded