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.
Merge pull request #132 from dwijnand/add-bench

Add bench module, using JMH & a token benchmark.
Add more Lens benchmark
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