Issue #535

Align type-class, syntax and instances. Some ideas taken from http://hackage.haskell.org/package/these/

The Align type-class is provides a zip-like operation (align) that maintains list elements that do not align.
Merge branch 'topic/align-rebase' into scalaz-seven
fix compile error in Scala2.9

https://travis-ci.org/scalaz/scalaz/jobs/11589635#L360
add Option align law test
optimize listInstance#alignWith. remove code duplication
update GenTypeClass
add ToAlignOps