use pattern matching in interpret and check errors

this implementation borrows heavily from
https://github.com/quchen/articles/blob/master/write_yourself_a_brainfuck.md
update Readme