[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