Check if the refspec matches before transforming

So I've managed to produce a crash by calling ```git_refspec_transform``` by not checking ```git_refspec_src_matches``` before-hand (using ```refs/heads/*:refs/remotes/origin/*``` as the refspec, and passing just "master" to the transform).

We should first ensure that the transformation can be applied (```git_refspsec_src_matches```) before attempting the transformation. Sure the user should really perform the check first, however, crashing if the user didn't is not acceptable. We should be setting ```GITERR_INVALID``` for these scenarios.
Shouldn't we perform this check before the `if(!spec->pattern)`? If we pass in the wrong source, the destination isn't going to make any sense either.