WIP for using Generics to allow for more flexible type matching

I'm not sure if this is going anywhere, but I'll share anyway.

Swift has a significant compiler bug when using Generics with class type - barfs when outputting and crashes the playground if you experiment there.  Found a workaround, commented in the code.

I've commented out most of the Quick code so that I can work from the ground up - less confusing and easier to keep track of tests.  As a result, unit tests are currently written in XCTest for Matchers until I get further on.

Again, this is for discussion, not merging!