Tab auto completion enhancement

First, we've added the ability to use the tab key to complete with the currently selected item. Second, we added an additional parameter when the autocomplete code calls the user-defined fetch method. The argument identifies which control the user is currently on. This was added so that if the developer wants to add a loading message, there is some reference to the current autocomplete control to use as an anchor for the loading message.