Use Data.Text.Text as input.

Hi Sean,

As per our quick discussion on IRC, this is the PR that changes the parser's input from `String` to `Data.Text.Text` and should serve as a basis for discussion. You mentioned that the design of the scala version has changed since the inception of `argonaut-hs`, so feel free to ignore this. ;)

I'm making heavy use of *view patterns* for matching prefixes. Not sure if this impacts performance and it'd be better to check non-emptiness and getting the characters via `head`.

Cheers