new parser combinators for parens, brackets, and braces (closes #26)

introduce parser combinator `wrap`, that ensures matching strings around another parser
use `wrap` to implement matches for (), [], {}, and ""