Rewrite major Optics using Profunctors
use Kind Projector
Update scalac options
Use step in Optional constructor
Simplify ProFunctor definition
Remove Optic definition for Traversal until we know how to implement it for all Traverse
Fix test
Add comment with desired definition of Traversal
Merge pull request #135 from julien-truffaut/optic

Rewrite major Optics using Profunctors
Use Option syntax to transform option to Maybe
Move macros to their own package
Move laws to their own package
Add basic Prism benchmark
Add nested Prism benchmark
Use Forget instead of Kleisli Const
Remove jdk6 from travis
Make Tagged extends AnyVal
Make Tagged public
Refactor Tagged instances
Revert Tagged not to be a value class