Refactor and tab completion

Tab completion lives in it's own module. The completion is extensive
enough to cover namespaces and vars, as well as Ruby constants, classes
modules, and singleton methods.