Remove useless Segment class

It was used solely for Segment.get (the only place where it was used just saved
its .get() method, throwing away instance itself) and looks more like abusal of
the purpose of the classes
Add ability to specify some segment keys once in top theme
Add ability to override configuration options

Related changes:
- Moved all non-ASCII symbols into `segment_data`
- Added --config_path, replaced nargs='*' with better action='append'
- Added g:powerline_config_path vim option
- Added ipython overrides (via additional arguments to setup() or c.Powerline)

TODO: support for non-string scalars in vim overrides.

Fixes #231
Replace getfsize with os.stat
Fix various flake8 errors
Rename colorscheme variable to colorscheme_config
Replace 'NONE' with None for guifg/guibg.

No need in having string keys if we are in any case checking this for equality
later instead of embedding them as-is like cterm*
Split colorschemes and add better gradient support

- Splitted colorschemes into colors definitions file (TODO: remove non-colors
  definitions like weather_condition_hot and base00) and actual colorscheme.
- Removed dictionary containing groups definitions for all groups for all modes,
  now colorscheme is queried for this each time.
- Moved determination of colors from theme to renderer.
- Added gradients definitions (actually, only one) to new colors file.
- Made line_percent with gradient=True use new gradients.
Replace non-color names with a bit more descriptive names
Optimize cterm_to_hex

Dictionary is an overkill here. Tuple is faster. Also now the whole tuple can be
seen on the 1/4 of my screen (32x119 characters) and colors are easier to find
(useful only when seeking for normal color names).

Again, it would be goot to ignore flake8 in this case. Without comments it
complains about it is not easy to find requested color by hand
Ignore highlight definitions for function segments

Also removed divider_highlight_group from configuration: it is actually used
only in function segments.

Fixes #215
Use smoother gradient for true color
Fix various flake8 errors
Fix various segment issues

- Fixed user segment (windows): there is no os.geteuid() here
- Fixed dir_limit_depth in cwd segment (it was not really accepting None
  value)
- Made paste_indicator not use getbufvar for global option
- Made file_size use buffer name for cache key
- Made a number of segments coerce returned integer values to strings
- Fixed modified_buffers (getbufvar() returns empty string for deleted buffers,
  but int() does not accept empty string)
- Fixed file_directory and file_name segments: they were not working in
  python-3.3 because str() object has no attribute decode()
- Made powerline.lib.vcs.git.Repository.status() always return 3-characters
  string
- Made it always check both for dirty index and dirty wt for all files
- Fixed binary prefix handling, renamed it to si_prefix

  Previously there was the following when binary_prefix was False:
      div = 1024
      unit = kB
  (unit is inconsistent with div).
  Now it is the following when si_prefix is False:
      div = 1024
      unit = KiB
  (according to https://en.wikipedia.org/wiki/Binary_prefix IEC prefix kibi is
  abbreviated as Ki, not ki (note the case)). This means that in segments prefixes
  has changed, but not displayed values.
Fix zsh/zpython issue
Make vim visual block selection orange

Fixes #147
Fix syntax error in default tmux theme

Ref #150