Replace draw_divider setting with draw_(soft|hard)_divider

Previous variant was bad because
1. draw_divider only applied to soft dividers. Hard dividers were always drawn
2. But there was a hack with width=auto segments: for this segments draw_divider 
   setting applied always.

Now there are no additional dependencies: draw_*_divider applies no matter what 
other properties of the segment are.
Replace draw_soft_divider setting with draw_inner_divider

If weather or system_load segments were moved to the left draw_soft_divider
variant resulted in incorrect renderring. Thus it was replaced by
draw_inner_divider.
Remove update_first set from set_state

It is already handled correctly in .render() method
Fix cwd segment, add use_path_separator option

cwd segment was not drawing inner separators because of new default for 
multisegment functions. use_path_separator was added because current variant 
looks bad for my taste.
Also do the same for `last_pipe_status`
Add more assertAccessEvents

May fix travis build
Use clear_events, do not assert.
Do not use create_renderer from a separate thread

Also moves functions from tests.test_config_reload to tests.lib.config_mock

Using create_renderer for vim results in vim access from a separate thread.
Lock create_renderer_kwargs separately from configs
Exchange if and with cr_kwargs_lock
Fix typo

Fixes #387
Fix problems with tests
Merge remote-tracking branch 'zyx-i/dividers' into develop