Shell autocompletion

Added basic auto completion for shell that can recognize files and programs. Tapping tab key twice will print all the possibilities
Sorry if I was unclear about that - I never really meant `hint` itself should be a table, I think it's fine to always have that as a function. I just meant it could *return* a table that could then be cached. I think that'd simplify the code a bit, no?

I promise I'll find time to actually test it out tomorrow, busy day today.