doc: organize required packages, add them to doc/*-*.md files too
doc: add "ctest" to the build instructions
doc(ode-visualization): add documentation for visualization
doc(README.md): link ode-visualization
chore(cmake): suppress output from "autoreconf --install"

Problem
=======

Running ``autoreconf --install`` generates auxiliary files such as
``missing`` and ``compile``. CMake with external projects recognizes the
output messages such as "configure.ac:xx installing 'missing'" and
categorizes them as "compiler errors" while it is actually not the case.

Previous Solution
=================

We used to just suppress all outputs from the builds of external
projects. It turns out that this is not a good practice because it
provides no information to users when the compilation really failed. For
instance, Marius reported me that his build on Debian didn't work. It
was because the lack of ``libtools`` dependency but the suppression in
cmake external projects made it difficult to find the problem.

Current Solution
================

We do the following:

    (autoreconf --install > /dev/null 2>&1 || autoreconf) && ./configure

So the output of the first autoreconf with ``--install`` option will be
suppressed. This will prevent CMake to report a compilation error.

The second ``autoreconf`` will be only executed when the first one is
actually failed. The output of the second one is not redirected so that
CMake will detect the errors and show them to us later.
chore(cmake): update deps. for external projects
chore(cmake): update deps. for external projects