Make the EOF byte value configurable

According to the Brainfuck specification on the EsoLangs wiki, EOF is an
implementation issue and is not part of the formal spec:
http://esolangs.org/wiki/brainfuck#EOF

Previously, the interpreter always returned a character with the value
of 0 (which is the null byte in both ASCII and UTF-8). In traditional
UNIX programming, this has always represented EOF.

Unfortunately, it would appear that too many programs require an EOF
byte value of -1 rather than 0. Instead of hard-coding a value, it's now
configurable (but defaults to 0).

This helps with programs like this:
http://esoteric.sange.fi/brainfuck/bf-source/prog/SORT.BF
which expects an EOF of -1

And with programs like this:
http://esoteric.sange.fi/brainfuck/bf-source/prog/rpn.b
which expects a carriage return! wtf!