[WIP] Start type system abstractions.
Remove references to TypeAttrName.
Add AttrName#contains.
Introduce AttrName#dress, Finitio-inspired coercion mechanism.

For more about this scheme, see http://www.finitio.io/reference/latest/information-contracts
Implement the type system abstractions.

The type system is made of:

1. Three type classes ScalarType, TupleType and RelationType.
2. One Heading class, helper for Tuple and Relation types.
3. A few tools to infer types from literals, and compute least
   common super types.
Enhance Tuple and Relation to be properly typed + type inference.
Enforce type to be always known on Tuple.
Fix spacing issue.
Operators know their relation type at construction + prepare typeCheck()
Document Heading.
Add Heading#equals and Heading#hashCode
Remove lazy computation of relation's tuple type.
Add a convenient TupleType factory method.
Add `Type#contains(Object value)` with some tests.
Add a few unit tests on RelationType.
Implement proper type-checking of relation literals.
Add some documentation.
Documentation continued.
Improve and document Type and its factory.
Enhance AttrList with a few more tools, including difference.