implement concatenation for QueryRules

 - to get access to an iterator, we need the rules to be PersistentVector, rather than IPersistentVector
 - the transient vector needs to be upcast to get the visibility to the conj and persistent methods, which then requires a corresponding down cast
Merge pull request #101 from pellucidanalytics/topic/combine-rules

implement concatenation for QueryRules