Add a module-level docstring.

This also makes the 'import' statements uniform.
Use 'project' for finding occurrences.

'pycore's functions aren't used when finding occurrences, so it's better
to just use 'project' directly.
Move 'get_string_module' and 'get_string_scope' into libutils.

These methods didn't use anything within the 'pycore' object except to
pass that in as a parameter. It's better to have people call a library
function instead and use the 'project' object without having to access
'pycore' directly.

No functionality change intended.
Pass in the 'project' and not the 'pycore'.
Remove some unnecessary uses of 'pycore' in favor of 'project'.

Remove some unnecessary attributes.
Move 'pycore.modname' into libutils because it doesn't use pycore functions.
Move method to function because it doesn't use 'self'.

Move some methods from pycore to project.

These functions are better placed in the project object. Adjust the
functions that call them appropriately.

Use project, not pycore.

Move more methods from pycore to project.

These methods use objects from project and don't really have a reason
for being in pycore.

Use 'project.get_pymodule' instead of 'pycore.resource_to_pyobject'.
Have deprecated functions in pycore call replacement functions.
Patch supposedly speeding up completion from SublimeText2 module.

Should be solution for #44.

Original commit message:
 - added a lot more caching to Rope
 - added case-insensitive completion
Testing the patch.