Fixed ignorable-char?, added examples.

Before, non-whitespace chars would break the parser inexplicably. The
bug originated from an old implementation detail, where they were only
checked at the beginning of a 'block', since we try reads on a
case-by-case basis. We'd use the same offset to see if the characters in
an input port would match to the characters in a Whitespace case. While
they matched, we'd increment the common offset.

This was fixed by adding a second offset, one for the Whitespace case
(which was as before) and one for the input-port, which now skips them.
As implemented, it's horribly bad for performance (if you had a port
that matched /[^ \t\n]{1000}/ before your next whitespace char, each
rule would read the same 1000 chars before evaluating whether or not it
matched).

Second time the bug arised was in regards to handling suffixes, which
also read from the input port. We just add a case to ignore
non-whitespace chars.

(test your code, kids).

Also, added examples to their own subdirectory, because let's be real:
nobody's going to write their own, they'll download the repo, run it on
a few examples maybe, and giggle/groan.
Add examples from Whitespace website.

hello-user doesn't work, but the rest seem to.