implementing many TabComplete methods for Canary commands and various tweaks to help in that process, also added PlayerReference interface to help bring OfflinePlayer and Player together