Add company-mode backend (resolves #467)

WIP

Pros:
* UI is slightly nicer than auto-complete mode (IMO).
* Feels nice and snappy.
* Supports disabling de-duplication, so arity overloads work.

Required more work than I expected to sort out the client-side caching, but the code isn't terrible.
Give it a try!