1 millon * improvement to isomorphism

Much better isomorphism implementation with lazy data structures and better algorithm, leading to [1 million factor improvement in even very simple cases](https://github.com/read-write-web/banana-rdf/blob/0436a63eecb00b73c3564e5ee23e9fd0286276c5/rdf-test-suite/src/main/scala/iso/GraphIsomorphismTest.scala#L305). If complexity of calculation is too big - meaning of "too big" is user settable - the calculation can fail quickly and gracefully.
Mhh the problem is that with your suggestion I end up with the following error being thrown:
```
  java.lang.ClassCastException: org.w3.banana.plantain.model.URI cannot be cast to org.w3.banana.plantain.model.BNode
[info]   at org.w3.banana.plantain.PlantainOps$.fromBNode(PlantainOps.scala:9)
[info]   at org.w3.banana.RDFDSL$BNode$.unapply(RDFDSL.scala:32)
[info]   at org.w3.banana.iso.GraphIsomorphism$$anonfun$groundTripleFilter$1.apply(GraphIsomorphism.scala:52)
[info]   at org.w3.banana.iso.GraphIsomorphism$$anonfun$groundTripleFilter$1.apply(GraphIsomorphism.scala:50)
[info]   at scala.collection.immutable.List.foreach(List.scala:381)
[info]   at org.w3.banana.iso.GraphIsomorphism.groundTripleFilter(GraphIsomorphism.scala:50)
[info]   at org.w3.banana.iso.GraphIsomorphism.findPossibleMappings(GraphIsomorphism.scala:110)
[info]   at org.w3.banana.iso.GraphIsomorphism.findAnswer(GraphIsomorphism.scala:129)
[info]   at org.w3.banana.plantain.iso.GraphIsomorphismTest$$anonfun$4$$anonfun$apply$mcV$sp$16.apply$mcV$sp(GraphIsomorphismTest.scala:234)
[info]   at org.w3.banana.plantain.iso.GraphIsomorphismTest$$anonfun$4$$anonfun$apply$mcV$sp$16.apply(GraphIsomorphismTest.scala:231)
```