[actuator] Add an abstract method to deal with velocity or position control

Part of #117
[actuator] Add a property ControlType to various actuator

This property is used to decide if the computed speed controls the robot
in Velocity or in Position. The default is still Position, but it is now
easier to test each robot with different settings.

Part of #117
[testing] Add a basic test for velocity sensor

A bit touchy due to the 'Velocity' control, but I do my best to make it
reliable

Fix #336
[core] Remove some now unused code in datastream

The code was needed to load extra methods and to clean them up. Now,
with the object model, it is not needed anymore.
[doc] Remove deprecated import
[testing] Add a target in rotorcraft_waypoint

Regression test for #370
[core] Improve wrapper against mathutils.Matrix

In particular, it now includes the static method Rotation.

Fix #370
[core] Rework the previous commit which breaks camera sensor

Repeat after me, you will pass all the tests, all the tests ...
Indeed, the new solution is cleaner, shorter, and complete by definition
!
[service] Add new service to control the logging devel of a component

Part of #337
[data] add apartment indoor environment
Added a 'noocclusion' option to semantic camera to disable occlusion testing

Useful when tracking many objects since the raycasting can be
quite CPU intensive.

To use this option (disabled by default, ie, the current behaviour is
the default behaviour):

cam = SemanticCamera()
cam.properties(noocclusion = True)

While here:
- fixed performance issues introduced by logging calls
[testing] Support testing for invalid scenes

This commit introduces a new class of tests: MorseBuilderFailureTestcase. These
tests pass if MORSE *properly fails* to load the scene (ie, it tests that the
GameEngine is not started).

The commit also include 2 tests that currently do not pass (cf bug #374).

While here:
 - improve management of PIDs (you do not need to get it from MORSE log,
   Popen.subprocess give it back to us). This allow to kill MORSE even
   if it did not reach the initialization stage.

TODO: I've no example of invalid scripts that are correctly handled by
MORSE, so I could not test that MorseBuilderFailureTestcase actually
pass when MORSE dies before starting the BGE.
[pymorse] use asynchat for stream handling

asynchat / asyncore deal with message buffer and channel synchronization
delete `ComChannel` (replaced by the `asyncore.loop`)
add a Morse.is_up() method to know if the simulation service is
connected. So use `while sim.is_up():` instead of `while True:` in
pymorse scripts.
[builder] quie by default for unhandled exception

default behaviour: quit Blender if an exception was not catched
[pymorse] update pymorse test
Partially revert 138c97

We need to get the PID of the Blender process itself, not the MORSE process.
Make it clear by adding a comment to _extract_pid()
[core] Properly inherit properties for parent classes

This bug has been revealated by 138c97b
[sensor] Fix a typo in semantic_camara
[doc] Force the output in stdout and files to utf-8
[cmake] Don't need anymore to do weird thing to force locale