Basic Code completion operations added + a tiny test

I expect more changes to come as I need them.

What's your opinion on breaking the current api? I'm thinking in particular of adding support for "unsaved_files" which will need one new argument to the functions that support that feature, and users who use the api but don't care about that feature will have to add ", nil" to their invokations.