Fix tests for factory methods.

Due to the way the factory tests were being set up, they were not being run properly. This pull request fixes that.

The problem was being caused by the factory being constructed during test setup. Since the gocheck.C object from the test setup method was being passed on to the factory, failed assertions in factory methods were not being properly handled. A gist that demonstrates this can be found here: https://gist.github.com/tasdomas/649ecf86ba43e4cd4b36

This resulted in some code being broken, but not immediately obviously so. Because of that some changes in this PR are there to make the now functional factory tests pass.
So this *is* a good change in isolation, but I'm worried that we'll have other tests that set up factories at SetUpSuite -- and that it's not obvious that this is a Bad Thing.

Not one for this CL, perhaps -- but I'm pretty sure that all factory methods ought to be accept a *gc.C instead of attempting to reuse one and opening ourselves to this issue.

(And if we doing that -- which I think we should -- can anyone think of a reason not to just accept params pointers in the factory methods? so they accept `(c, nil)` in the default case? The repeated check-varargs-length-is-1 bits really get up my nose.)

(but, fwiw, I don't think we should extend this CL to do so -- we should just have a followup branch that fixes the underlying issueof which this is a symptom)