Backfill Task.handle unit tests.
Add handleWith to Task.
==>> Align instance

https://github.com/isomorphism/these/blob/a57171925/Data/Align.hs#L123-L127
==>> align test
Align instance for scala.Map
scala.Map align test
Saner thread naming in DefaultExecutorService

The previous Strategy.DefaultExecutorService asked for a new thread
factory for each new thread created. The result was threads with names
like (on a 4-cpu machine)
pool-6-thread-1
pool-7-thread-1
pool-8-thread-1
pool-9-thread-1
This change saves one defaultThreadFactory and reuses it for thread
creation, so that the threads come out named
pool-6-thread-1
pool-6-thread-2
pool-6-thread-3
pool-6-thread-4
This makes debugging easier, because one can see which threads are
grouped into the same pool.
optimize IList#scanLeft, scanRight
implemented Task.runAsyncInterruptibly
resize sequentialFusion and sequentialFusion1 Prop

sometimes `sequentialFusion` and `sequentialFusion1` generate too large objects.
it cause OutOfMemoryError or test hang on travis-ci
use `lazy val` instead of `val` in lanApplicative#ap
Merge pull request #627 from xuwei-k/map-align

Map Align instance
Merge pull request #631 from jessitron/executorServiceThreadNaming

Strategy.DefaultExecutorService creates threads as if they're each in a different pool
fix zip

should not evaluate second parameter if first parameter is empty
override apply2, tuple2
add ZipTest
Zip[({type λ[α] = S ==>> α})#λ]
Merge pull request #632 from Spinoco/task/interrupted

implemented Task.runAsyncInterruptibly
Merge branch 'scalaz-seven' into topic/handle-with

Conflicts:
	tests/src/test/scala/scalaz/concurrent/TaskTest.scala
Merge pull request #625 from xuwei-k/zipLazy

fix zip. should not evaluate second parameter if first parameter is empty