Refactor `resolveOther` into separate methods.

* Splits up the giant `resolveOther` method into smaller helper methods.
* Allow specifying module lookup patterns in `moduleNameLookupPatterns`.
* Iterate `moduleNameLookupPatterns` and return the first with a matching moduleName (this is essentially what we were doing before).
* Uses the same logging setup as Ember (from https://github.com/emberjs/ember.js/pull/4655).
* Removes a few methods that were duplicated from `Ember.DefaultResolver`.