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.
Apparently an empty refinement means 'don't widen me'.
Explicit result types with empty refinements to prevent widening.
Workaround for SI-7755.
Split off sized syntax for Strings and GenTraversables.
Sized is now a value class.
Rework TupleOps implicits eliminating potential conflicts with HListOps implicits and removing more boilerplate..
Updated tuple flattening example.
Fix ambiguous implicits on 2.11.x.
Backported 2.11.x compatability fixes.
Remove eval call from Nat constructor macro.
Nat now operations conform to the Foo/Foo.Aux scheme.