Fix broken links to benchmark plots in the documentation.
README: update the compiler requirements
Register benchmark for the subset method.
Add support for std::ratio.
Fix a couple of bugs in the build system:

- Don't add benchmarks when the Benchmarks module is not available
- Properly handle tests and examples depending on Boost
Instantiate Searchable and Iterable with String.
Add more laws to Functor.
Type: clean up and remove misplaced functionality

The ability to construct objects of a type T by calling the type<T>
object was removed; make<T> should be used instead.
Simplify the header hierarchy: too modular isn't good.

This essentially undo parts of 307d3d0. While it seemed a like good
idea to over-modularize type classes to reduce header dependencies, I
think it was a mistake. What 307d3d0 did was basically split each of
the components of a type class into a single header (typeclass/operators.hpp,
typeclass/mcd_1.hpp, typeclass/mcd_2.hpp, ...).

At first, it resolved many weird header dependency glitches. However, it
also made everything more complex; creating even easy type classes was
sometimes much longer than it should have been, and using type classes
was tricky because you had to know exactly what to include. It also went
against the idea of implicit type class instances being provided whenever
that's possible, which I think is a nice feature of the library. Being
dissatisfied with this, I opted for a simpler header organization with
a fwd/ directory that contains forward declaration headers, and everything
else in the same directory.

A possible objection to this change would be that you are now forced
to include sometimes more than what you strictly need when e.g. defining
an instance or using only some instance(s) of a data type. My answer to
this is that Hana is a really small library and the parsing is not
going to have a huge impact on overall compilation time. My bet is that
the time that will be saved by programmers with a simple header hierarchy
outweights the parsing time by far.
Use functional utilities instead of hand rolled equivalents in some places.
Benchmark different closure implementations.
Ensure plots are redrawn when the datasets are updated.

Right now, the plots are also redrawn when they are not needed. Since
this is basically free, it should not be a problem.
Add std::declval and std::add_rvalue_reference to detail::
Add detail::closure based on multiple-inheritance
Perform eta reduction in Tuple at_impl.
Simplify id's implementation.
Use functional utilities instead of handwritten lambdas when easy to do so.
Fix dangling reference in Foreign::{succ,pred}_impl.
Improve CMake output when generating data sets
Fix typo in test::CNumeric.