Reworking of Poly infrastructure and namespacing.

- Free standing CaseNAux is now CaseN
- Free standing PullbackNAux is now CaseN.Aux
- Poly#CaseN is now PolyN#Case
- Most auxilliary definitions have been moved into object PolyDefns
  which has a val alias in the shapeless package object allowing
  access via 'import poly._'
- The miscellaneous Poly examples have been moved to either examples or
  tests. The identity Poly has been moved to poly._.
- ~>> is now a type alias for ~> with a constant type constructor on the
  RHS
- ~?> is used almost exclusively with HMap, so it has been moved to
  HMap's source file.
- LiftO is now an example. Use liftA from shapeless-contrib instead.
Merge branch 'master' into scala-2.11.x

Conflicts:
	core/src/main/scala/shapeless/poly.scala