Adding tab completion functionality to all registered commands.

To avoid complexity, tab completion will insert a space after an argument is inserted, unless currently in the middle of an unfinished argument with multiple options. Open to suggestions for improvement on this.

R=benwells@chromium.org

Review URL: https://codereview.appspot.com/54100045