Change tab-autocomplete to behave like cmd.exe and fixes #1144 as well

I have always found this annoying. I changed the tab behavior to be the same as cmd (i.e. cycle through the options) 

Also a small fix for null ref in the PersistentCommandController if the client doesn't specify a shell or sends in null data