Implement begin and end methods on the MatchData

Hi @mudge 

Here's the begin() and end() implementation for the MatchData. Let me know if it's OK!

Jason
Yes the offset returned is byte offset. Good spot. Ill look for a way to return a character offset.