Added warning for using repo enumerator on a background thread

Now if the the enumerator for a repo is accessed on anything other than the main thread, a warning is logged.
Added check for nil repo

GTEnumerator will throw an exception if the provided repo is nil. This doesn't go along with ObjC's style very well, so instead that case is checked for and if it matches, nil is returned.