fix tests cmakelists
move __attribute__ in a macro to fix the VS build
hide MS VS warning C4251
dllexport/import joint and body classes

Before this commit, only METAPOD_DLL{API,IMPORT,EXPORT} was defined.
However, there was several problems

* DLLEXPORT was used in place of DLLAPI

* Joint and Body classes were not exported

* we do not create any metapod DLL but instead simple_arm DLL and
  simple_humanoid DLL. So we need to pass the library name to macros
  which define DLL-exported classes.

This commit adds DLL API support for these two libs (and also others for
the models we generate for the benchmarks).

This commit also moves simple_arm and simple_humanoid to separate
directories.

Before, their cmake code was split between the project root (for files listing)
and the tests directory (for actual library creation). And a .cc file was
under include/.
Moving the cmake code was necessary in order to generate the libraries
config.hh (since the directory acts as a namespace).
The library names were also changed to add a metapod prefix. And the - in the
header directory was replaced with a _.

Eventually, this commit adds an helper function to generate config.hh.
One cannot use the one provided by JRL-CMAKE as it can only be called from the
project root directory.
hide non exported symbols on linux too
remove NP::Iic member

which causes this error on VS:

    crba.hh(75): error C2039: 'Iic' is not a member of 'metapod::NP'

Note that there might be a better way to avoid the error (properly exporting
the symbol or so).

Note also that metapod/tools/has_parent.hh is now unused.
make_model: fix ambiguous overload error in VS
refactor the benchmark, fix the VS build

 * the Timer class did not work on Visual Studio. We wanted to use boost::timer
   library instead. Yet, it is quite recent (introduced in boost 1.48),
   so we use it if available but resort to fallback implementations
   otherwise. These fallback implementations should be removed once
   boost>=1.48 is more widespread.

 * since this timer library requires its own (generated) config.hh
   header, we moved it in a distinct directory.

 * instead of a big macro with cut and pasted content, the benchmark is
   now a std::vector of functors.

 * the generation of random inputs is now shared between all benchmarked
   algorithms, it should be a little faster.
add static_assert.hh to header list
update the headers list

and sort them alphabetically, so that one can compare the list
with the output of tree include.
fix VS warning C4099: type name seen using 'struct' then 'class'
fix RotationMatrixChangeAxis::operator<<
disable VS warning C4503: decorated name length exceeded