Reworking of singleton types.
- Added syntax.singleton to enrich literal and stable values with
  singleton typed operations.
- Added WitnessWith type supporting narrowing of a literal/stable
  value to a singleton type and simultaneously summon a type class
  instance for that singleton type.
- Witness/WitnessAux refactored to follow the current Foo/Foo.Aux
  pattern.
Added at Nat-indexing to HList as an equivalent to apply in circumstances when the record apply is in scope.
Added at Nat-indexing to tuples as an equivalent to apply.
Reworking of records.
- Split off record syntax and operations to syntax.record and ops.record
  respectively.
- Records are now HLists of values tagged with the singleton types of
  their keys.
- Added updateWith record operation (thanks to @jonifreeman) and used
  WitnessWith to get the function type inference to go smoothly.
Fixed a couple of minor scaladoc typos.
Added scaladoc for tuple operation type classes.
Use illTyped in tests where appropriate.
Reorganized TypeOperators into package level definitions and toplevel types and objects.
Removed leftover HList test from tuple tests.
Merge branch 'master' into scala-2.11.x

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