Up-to-date automatic codec derivation with shapeless' Lazy

Updated the automatic codec derivation with the latest developments in shapeless (https://github.com/milessabin/shapeless/tree/topic/serialization). The `TypeClass` mechanism from shapeless underwent a major rewrite, and now revolves around implicits nested in `Lazy`.

I ran into the same kind of issue as in https://github.com/argonaut-io/argonaut/pull/142, so I had to move the definition of the tested type `Shape`.

Building this PR requires the `topic/serialization` branch of shapeless. Checkout this branch of shapeless, and publish it locally with `sbt publish-local` prior to building this PR. (So the Travis build of this PR will likely fail.)
I get this error if it stays at its original place:
```scala
> ~ test
[info] Compiling 2 Scala sources to /home/alexandre/projects/argonaut/target/scala-2.11/test-classes...
[error] /home/alexandre/projects/argonaut/src/test/scala/argonaut/DecodeJsonSpecification.scala:69: could not find implicit value for parameter e: argonaut.DecodeJson[argonaut.Shape]
[error]       }).as[Shape].toOption must_== Some(s))
[error]            ^
[error] /home/alexandre/projects/argonaut/src/test/scala/argonaut/DecodeJsonSpecification.scala:63: could not find implicit value for evidence parameter of type argonaut.DecodeJson[argonaut.Shape]
[error]     DecodeJson.of[Shape]
[error]                  ^
[error] two errors found
[error] (argonaut/test:compile) Compilation failed
[error] Total time: 5 s, completed 6 déc. 2014 23:54:02
1. Waiting for source changes... (press enter to interrupt)
```

Adding this line before the error:
```scala
val l = LabelledGeneric[Shape]
```

shows that `LabelledGeneric` derivation (which the auto `DecodeJson` requires) fails:
```scala
[error] /home/alexandre/projects/argonaut/src/test/scala/argonaut/DecodeJsonSpecification.scala:63: could not find implicit value for parameter lgen: shapeless.LabelledGeneric[argonaut.Shape]
[error]     val l = LabelledGeneric[Shape]
[error]                            ^
```

So this seems to be a bug in shapeless' `LabelledGeneric`...