Re-implement Regexp.Match.

It's completely unoptimized yet still faster than the previous implementation on hard matches:
benchmark                         old ns/op     new ns/op     delta
BenchmarkRegexpMatchEasy0x32      1214          16661         +1272.41%
BenchmarkRegexpMatchEasy0x1K      32534         481348        +1379.52%
BenchmarkRegexpMatchEasy1x32      1203          16476         +1269.58%
BenchmarkRegexpMatchEasy1x1K      32699         477571        +1360.51%
BenchmarkRegexpMatchMediumx32     244           2005          +721.72%
BenchmarkRegexpMatchMediumx1K     40159         488161        +1115.57%
BenchmarkRegexpMatchHardx32       102727        72661         -29.27%
BenchmarkRegexpMatchHardx1K       4766294       1506289       -68.40%

benchmark                         old MB/s     new MB/s     speedup
BenchmarkRegexpMatchEasy0x32      26.35        1.92         0.07x
BenchmarkRegexpMatchEasy0x1K      31.47        2.13         0.07x
BenchmarkRegexpMatchEasy1x32      26.59        1.94         0.07x
BenchmarkRegexpMatchEasy1x1K      31.32        2.14         0.07x
BenchmarkRegexpMatchMediumx32     4.09         0.50         0.12x
BenchmarkRegexpMatchMediumx1K     25.50        2.10         0.08x
BenchmarkRegexpMatchHardx32       0.31         0.44         1.42x
BenchmarkRegexpMatchHardx1K       0.21         0.68         3.24x