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

How do I create a test case in pytest? I start reading the pytest documentation and I could only see examples where test methods are used.