Use different default for functions

This makes it look up `powerline.segments.vim.virtualenv` in addition to 
virtualenv in colorscheme like it does with `segment_data`.
Replace on_*_change callbacks with gen_loader_callbacks

Removes reference cycle
Return exception string in place of throwing an exception

Big bunch of `AttributeError`s when renderer failed to be created that renders 
vim unusable in case of some of the errors (e.g. invalid configuration) is 
annoying.