Parser.withSource() parser

Parser<T>.withSource() parser applies this parser and returns its
result along with matches string.

.token() parser could be used instead of .withSource(), however
sometimes WithSource is more convenient, because global string
object has to be stored somewhere to resolve token into string.

Also, WithSource class is type-parameterized, unlike Token.
Merge pull request #16 from stepancheg/with-source

Parser.withSource() parser