3 new partitioners

Of these new partitioners, 1 is like the original UnionPartitioner but uses field names instead of ids. The other two look for any top level field ending in property, then look for :property inside that struct to find a second union in order create a second level of partitioning.  One of these partitioners uses field id's the other uses field names.

I added tests to the partitioner test but I'm not all that experienced with midje so they probably need some looking over.  I couldn't figure out how to get the ..union.. metaconstant to work for the first fact in the 'property' based partitioners to work so they are commented out. And I'm not entirely sure I got the tests right.  I do know the partitioners work, I just don't know if I'm actually testing them with midje, or not.