Redraw after updating the statusline

This has previously caused some speed issues, but because it's only
triggered when entering/leaving a buffer (not on CursorHold and similar
autocmds) I hope it won't make the plugin any slower. Without redrawing
the statusline will be blank when opening some file types on some
configs, this commit solves that by forcing a redraw after Powerline is
loaded.
Update the README with more troubleshooting info

Closes #31, #48, #87, #92.
Create callback functionality

This commit introduces the possibility of accessing statuslines from
a callback function which may be used in cases where plugins have to
disable autocmds (e.g. Ctrl-P). The statuslines are cached in a separate
THEME_CALLBACKS array which contains the callback initialization string
and the callback function.

Refs #56.
Create Ctrl-P theme

Closes #56.
Simplify the pwd segment
Match tagbar buffers by filetype instead of buffer name
Fix vim doc errors
Create NERDTree statusline

Refs 38a7b18ed36e51377bbcf24e95d4b1f95c816989.
Closes #79.
Change some buffer statusline colors
Revert "Redraw after updating the statusline"

This reverts commit a846b2adb04abc248976724a53bdff0a7a89abba.

Unfortunately forcing a redraw still causes some issues (e.g. Gundo
flickers every time it's opened and other buffers feel a bit more
sluggish when opening and closing their windows).
Print error messages with echom instead of echoe

echoe caused vim to fail catastrophically if any errors occured while
loading an invalid theme. echom still logs the errors, but without
causing Powerline to crash vim.
Remove any attributes from segment separators

Thanks to @sjl for reporting this.

Closes #98.
Update color scheme syntax

The previous syntax was verbose and difficult to work with. This commit
tries to improve colorscheme creation by simplifying the syntax with the
cost of being easier to break and harder to debug if anything is wrong
in the color scheme.

The new syntax works as following:

First, you need to allocate some colors for your color scheme:

	call Pl#Hi#Allocate({
		\ 'red' : 124,
		\ 'blue': 31,
		\ })

Cterm colors must always be specified. GUI colors are optional. To add
GUI colors, provide a list as the color parameter with the GUI color as
its second element (note the hex notation):

	call Pl#Hi#Allocate({
		\ 'red' : [124, 0xff0000],
		\ 'blue': [31 , 0x0000ff],
		\ })

Now you can create styles for the different segments (example from the
distinguished color scheme):

	let g:Powerline#Colorschemes#distinguished#colorscheme = Pl#Colorscheme#Init([
		\ Pl#Hi#Segments(['mode_indicator'], {
			\ 'n': ['darkestgreen', 'brightgreen', ['bold']],
			\ 'i': ['darkestcyan', 'white', ['bold']],
			\ 'v': ['darkred', 'brightorange', ['bold']],
			\ 'r': ['white', 'brightred', ['bold']],
			\ 's': ['white', 'gray5', ['bold']],
			\ }),
		\ ])

Pl#Colorscheme#Init() accepts a list of segment highlighting properties
(return values from Pl#Hi#Segments()).

Pl#Hi#Segments([...], { ... }) accepts two parameters: a list of all the
segments that are going to be highlighted and a dict with the
highlighting for different modes. Currently 6 modes are available, with
both a shorthand and full key you can use (choose whatever you prefer):

	n | normal
	N | noncurrent
	i | insert
	v | visual
	r | replace
	s | select

The dict values are a list with the colors and attributes for this
segment/mode combination.

The first list element is always the foreground color. The second
element is an optional background color (it's optional for segment
group children--if it's not provided then the segment group's bg color
will be used). The last element in the list is a list of attributes. The
supported attributes are 'bold', 'italic' and 'underline'.

Note: It's important to include highlighting for all the segments in the
default distribution. Failing to include highlighting for used segments
will trigger error messages when starting vim.

Thanks to @sjl for giving me feedback about the new syntax.
Rename "distinguished" theme/colorscheme to "default"
Create command for reloading a colorscheme on-the-fly

The command is :PowerlineReloadColorscheme, and it can be used when
developing colorschemes by adding an autocmd like this:

	au BufWritePost colorscheme.vim :PowerlineReloadColorscheme
Fix minor issue with the previous commit

When Pl#HL was cleared in Pl#ReloadColorscheme() it was also cached
empty, so all highlighting was lost when reopening vim.
Create autocmd for automatically reloading colorschemes

Colorschemes will now be reloaded after writing if they're located in
the default location (*/autoload/Powerline/Colorschemes/*.vim).
Create trailing whitespace marker segment

This is a slightly modified version of the pull request. Thanks to
@YANOUSHek for this patch.

Closes #99.
Make Pl#Segment#Init() accept a list as its only argument

Vim has a restriction on the amount of arguments a function can accept,
and because Segments.vim is approaching this limit (of 20 arguments) the
function had to be modified to accept a list of arguments instead.
Fix typo in default colorscheme