General completers again

This is a continuation of #224. 
I've made changes according to your suggestions. Completers list now automatically populated from modules in ``general`` folders.

I've written 2 completers for this change:
  - UltiSnips completer. It's used only when user has a ultisnips installed and kick in at the same event as identifier completer.
  - Filename completer. It doesnt require any additional libraries and kicks in after ``/`` symbol.
  
They prove a usefulness of this PR. Current state of ``master`` branch only allows a one completer beside semantic completer and it's a identifier completer. Because of that, a new abstraction is needed.

Overall performance inpact after this change is very low. Each completer maintains its own cache and runs in a separate threads.

Only thing that this PR lacks is a unicode filtering function for filename completer, as stated in #254. 

Here's an example:
![general](https://f.cloud.github.com/assets/1290755/404177/b1756c9e-a93b-11e2-9b11-ac6e811b2482.gif)

This PR is quite big, so please take your time to review it.