Use Kleisli in definition of Traversal and Optional, rename setF, modifyF, lift and multiLift
Fix infinite recursion
Merge pull request #128 from julien-truffaut/kleisli

Use Kleisli in definition of Traversal and Optional, rename setF, modifyF, lift and multiLift
Move next version to 1.0.0
Remove HeadOption, TailOption, InitOption, LastOption
Replace List by Ilist in getAll
Change mkLens visibility to private
Remove hashCode
#85 Move Fields _1, _2, ..., _6 to fields syntax
Remove deprecated function
#129 Reorder foldMap parameter definition and add tests for Fold
Add final modifier
Add Json example to show more complex Optics usage
rename
Remove type annotation
Add bench module, using JMH & a token benchmark.

Run with:

    monocle-bench/run -i 3 -wi 3 -f1 -t1

Returns:

    [info] Benchmark                                Mode  Samples          Score    Score error  Units
    [info] m.LensBench.LenserMacroGet              thrpt        3   46429604.090   47629605.646  ops/s
    [info] m.LensBench.LensesAnnotationMacroGet    thrpt        3   46758656.780   25718778.637  ops/s
    [info] m.LensBench.MkLensMacroGet              thrpt        3   48159421.528   17478509.691  ops/s
    [info] m.LensBench.SimpleLensInferredGet       thrpt        3   48027987.301   20496467.231  ops/s
    [info] m.LensBench.SimpleLensVerboseGet        thrpt        3   46792889.950   24604272.636  ops/s
    [info] m.LensBench.directGet                   thrpt        3  187532049.281  326046024.616  ops/s

Some good JMH references:
* http://openjdk.java.net/projects/code-tools/jmh/
* http://shipilev.net/blog/2014/nanotrusting-nanotime/
* https://github.com/ktoso/sbt-jmh
* And run: `monocle-bench/run -h`
build: Extract shapeless c+p dependency logic.
build: Use CrossVersion.full instead of hardcoded version string.
Merge pull request #133 from dwijnand/remove-c+p-shapeless-dep-logic

build: Extract shapeless c+p dependency logic.
LensBench: Fix compilation, doh.