255 - Don't start emitters before observer is started

Problem
======

This is the code from #255


Changes
======

please not that it is not working and has no tests and it needs to be extended to the other emitters / observers as this is just for inotify...

so the currrent code is just an example to show what is my problemI have added a 'ready' state for emitter to signal what it is really ready
to be used... as isAlive() is not reliable, since it is set before calling
run.

On BaseObserver, I have also added an explicit start_blocking() method... not sure if we
should have this separate method or make default start() method blocking.

On BaseEmitter start is blocking, as I have another patch witch handles
exceptions during start #259

With the new code, in `tests/legacy/test_watchdog_observers_api.py`  there
is no need to do a dumb sleep(1)

I have also reduced the sleep in test_watchdog_observers_polling.py as 0.4 seconds is a lot

Now that we don't always start an emitter after we subscribe, the emitter stop code
need an update since we can stop/clean the emitter before starting it.

While the functional/system tests are great, they are very slow.
I think that we should also have unit tests to check for all kind of corner
cases which are much harder to setup/reproduce with functional tests.

This is why I start writing unit tests for the code that I have changed.
It was much easier to create race-conditions and overlap thread calls.

I have refactored clear_emitter to make use of _remove_emitter so that  we
have less code duplication or less code doing similar things in different
ways

Changes were only tested on Ubuntu 12.04 with Python 2.7

Please don't do this just because so you can run tests that don't rely on moves a little faster. Not only do you then test something than what people use, but once added to the api it must be forever supported. Nobody should need to change this.