Support multi-file models

So, after you merged my last PR I realized that models don't support definitions in multiple files either. So, for large models that are split among multiple files you only end up scanning the last file encountered :frowning:.

After I fixed this I noticed another issue related to supporting multiple files. During a rescan you detect which file the change occurred in. Then, you clear that tracker object and proceed to rescan the file. But, because controllers, models, etc can be spread across multiple files we need to keep track of all the files that need to be rescanned after you clear an object from the tracker. So, instead of tracking a single `:file`, I now keep track of a list of `:files`.