Added line_count segment for vim.

Returns total number of lines in current buffer.

Addresses #556
Merge pull request #947 from magus424/feature/556-line_count-segment

Added line_count segment for vim.

Closes #556
Fix required keys handling: do not require more keys then required
Add ability to copy recursive specifications
Added tabline support

No tests for it yet
Update tests to work with new functionality

Still no tests for new functionality.
Test tabline in test_tabline.vim file
Remove some __nonzero__ methods in tests/vim.py

Just __len__ is good enough here
Set __bool__ to __nonzero__ in DelayedEchoErr

Method __nonzero__ was renamed to __bool__ in Python-3
Fix renderer length computation

Current sum() of once computed _len’s is completely inappropriate in case
removal of the segment caused change in divider lengths: addition or removal of
dividers or change of the divider type when dividers have different length.

Also contains some optimizations: first of all _render_segments is called only
once always, same for strwidth() function for each string. Space is considired
to always have length 1. And do not bother computing any length if no width was
specified.
Add support for has_key(gettabwinvar()) in vim test module
Add tabpage and tabnr arguments to segment_info
Add tabnr segment
Add tabbuflister and buflister listers
Add single_tab segment
Modify test_tabline to also test bufline