Split Powerline.__init__ into __init__ and create_renderer

Target: with long-living Powerline objects periodically reload configuration 
recreating renderer. Use file watchers to watch for configuration. Configuration 
should be able to be safely reloaded in non-blocking mode in a separate thread 
up to the time when it comes to recreating renderer.

This commit does not add anything that actually reloads the configuration, 
multiple runs of .create_renderer were not tested.
Take file_watcher from @kovidgoyal develop branch
Some fixes for flake8, remove executable bit and shebang
Automatically reload configuration

Needs testing
Clear Powerline.configs when loading main configuration

It should eventually clear out stale watches.
Use global watcher
Fix network_load test

It was using old network_load.sleep and also was not shutting down network_load 
in case it failed test
Change indentation of closing }, ], ) and combinations of them
Workaround deadlock in ipython

shutdown_hook is called after all non-daemon threads exit, but it is needed for 
them to exit. Thus I had to use daemon threads in ipython or find some hack to 
make .shutdown be called earlier.
Add missing PowerlineState.use_daemon_threads assignment
Purge configs in another place

Loading main configuration does not necessary imply loading other configurations
Remove self.sleep call
Only access watcher through proxy

This is a fix for powerline-daemon: otherwise the first powerline object that 
did `watcher(file)` will receive file changed event and other powerline objects 
will not.
Remove ThreadedSegment.write_lock

Assuming getattr(self, 'update_value') and setattr(self, 'update_value', value) 
are atomic. True with cpython unless somebody defined __getattribute__ or 
__setattr__.
Use daemon threads by default

Note: current implementation runs `thread.join()` to ensure that thread is not 
shut down while updating, but this works only with regular shutdown. If shutdown 
is somehow done without triggering VimLeavePre (for vim) threads can be 
terminated at any state.

Closes #368
Closes #371
Fix problem with updating value: it was not updated in a thread
Allow overriding renderer module with any module

Will be used in tests. Allows renderer modules (and extensions) that look like 
`foo.bar`: it will import `foo.bar` and not `powerline.renderers.foo.bar` like 
before.
Also catch keyboard interrupts while updating

This will skip segments and issue a warning to log.
Add write_lock to KwThreadedSegment

Otherwise it is not safe to use. ThreadedSegment does not need write locks.

New variant spends much less time locked in both threads
Rename update_state to branch in powerline.segments.vim.BranchSegment