Merge pull request #4 from S11001001/topic/hash-join-emits

hashJoin, orElse fixes
added impure drivers
idProcedure and Driver.Id; M specialized to Id for impurities.
Curry tee.
Tie the knot in Plan.repeatedly.
foreach and iterative Plan.andThen.  Fixes some overflows.
Always fold right in traversePlan.  Right-associative flatMaps are better.
transduce now works on arbitrary LinearSeqs
cleaned up debugging statements
Merge branch 'master' into clarifi
Trial adding a fold left style interface for driver.
Merge pull request #6 from markhibberd/master

Add left fold style interface for Driver without Monoid constraint (See #5)
Renamed drivef to driveLeft.  #5
Fixed #7
Renamed TestRepeatedly and fixed permissions on TestTee.
Renamed executeLeft to foldLeftM
Made Plan covariant in K again
Update build to allow for cross compile against scala 2.10.0.

This change includes:
 - Update sbt to 0.12.1
 - Update scalaz dependency to 7.0.0-M7 which is latest published stable
 - Update scalacheck to 1.10.0 which is only available against 2.9.2 and 2.10.0
 - Scalac option shenigans for 2.9.2 vs 2.10.0

Note: There are still a number of compiler warnings when building with 2.10.0,
      specifically non-exhaustive pattern matching on Process without handling
      return.
Inline monoid instance for Unit can't possibly do anything useful.

`a` was a strict unit, left `b` as it is lazy, but I would
_hope_ it could be removed with no effect.

Note this change was driven by warning generated by scala 2.10.0
for discarding result of `a`. Possibly a silly warning, but I
think the change holds.
val in for comprehension is deprecated in 2.10.0