Move extern C to wrap only functions
No need to copy StringPieces, use pointers instead
Ensure anything passed to match is an implicit string

This fixes a crash reported by @driskell in #20 and included in pull
request #21.
Only declare Init_re2 as extern C

This works around an issue with YARD so that it can parse the
documentation from the rest of the functions without being confused by
the linkage instruction.