Add typelist constructs. Useful for future things.
Get typelists and classlists done. Note that for classlists, the problem
with the initializer list still exists.
Tried to re-test the classlist initializer order problem, and it appears
to be fixed now.
Add mention of typelists, and some more tests for classlists
Add m4 subdirectory to .gitignore
Fix grammar.
Rename classlist to inheritancelist; add compositionlist. Composition
lists allow non-unique combinations and mixed classes and types.
Improve test coverage for composition lists
Closes #1

Run-time chaining of conditions is still missing, but we can do that
later.
Update README.md
- Fix ambiguous overload in _and and _or constructs. Unfortunately that
  means that you always have to initialize them explicitly. Basically,
  for _and<>, the default ctor was defined, but also a ctor with no
  conditions - i.e. exactly the same thing.
- Fix recursion end for empty _and/_or constructs.
Resolves #3
Add restricted type, based on fhtagn.
Use std::forward where appropriate
Resolves #4

New singleton implementation
use C++11 syntax
Add some compile-time maths
Add comparators for type sizes. That involved rewriting the comparators
that existed before to accept any type (integer assumed), which meant
rewriting the for loop constructs, too.
Also make type comparators define the matching type
Use type size comparator for comparing type sizes in math.h
Remove old style cast warning