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.)
Why did this need to move back to here?