[ros] semantic camera use MorseEncoder
Start refactoring modifiers

Modifiers are now based on an Abstract class
Core MORSE part refactored
Only the NED modifier is up-to-date
ned_test passes succesfully!
Modifier parameter method + UTM

The parameter method helps modifiers
find their parameter, either in their kwargs
or in the global scene.

Fix some issues with passing kwargs to modifier
constructor.

Update the UTM modifier + unit test.
Add a method to log modifier key errors

A generic error message can be displayed
if the modifier tries to access unavailable
component data.

While here, update all modifiers using the
class-based structure.
Noise modifier unit test

Tests if data is noised (i.e. different from
perfect data) for Position, Orientation, Pose,
IMU noise modifiers.

The Odometry noise modifier must still be rewritten
in order to match the Odometry levels.
Generate doc for modifiers

Doc generation for modifiers is now automatic
The doc is quite simple: it displays the
description of the main class, and a list
of modifier parameters.

While here, improved a bit code documentation
and unit tests.
[doc] Update doc for adding modifiers
[doc] Add a modifier section in the builder doc
Add a 2D parameter to PoseNoise

If the _2D parameter is set to True
the noise is only applied to x, y and yaw.

Otherwise, the noise is applied to all
data (x, y, z, yaw, pitch, roll).
[builder] Add make_ghost method to the Builder

This method makes the robot transparent and changes its physics type to
NO_COLLISION

It allows to show a 'ghost' in the simulator for instance to display
some pose estimation computed outside MORSE.

A ghost robot has no influence on other robots (no collision and
invisible to laser scanners), except for video camera that see the
ghost!
[doc] Add a tutorial for noise and ghost
[doc] Adding explanations on pose estimation
[modifiers] remove some whitespace to please sphinx
[doc] Don't link hook page in adding_modifier, it does not exist anymore

While here, add some examples about when you may want to use a modifier
[modifiers] Remove some now unused files

In particular, we now use the random module instead of our own version
of gaussian.
[doc] Document important stuff since 1.0
[doc] Fix two typos in media.rst
Update to export viman to spark

One problem remains. The referencial is not the same in spark and
morse.
[ros] only unregister topic if it exists
correcting previous commit, sorry :)