Move CPS parsing API from MetapolatorProject to Controller
Initial implementation of @import
Replace cpsChain with cpsFile, using @import
Merge and improve two identical comments

Fix a typo in another comment
Remove two unused methods

Both can be implemented with existing methods
Rename “sources” to “rules” in Controller

Also in callers.

Rename Controller.getMasterSources to getMasterRules
use TestingIO
Simplify Controller

Take advantage of the cpsChain becoming a single cpsFile

Also remove some dead code in RedPill that was specific to CodeMirror use
Make replaceRule async

FIXME: check/invalidate the cache for loading CPS
Fix caching for CPS files

Remove two caches that were already no longer used
Factor out _checkScope from query and queryAll methods
Remove unused semi-duplicate Project.getMasterSources method

Remove an unused import

Fix a typo in a comment and one in a message
Extract RuleController from Controller

This takes parsing out of the model controller and puts it in its own
controller.
Generate namespace info when required rather than caching it in Rules

This gives correct information when @import-ed files are updated
Common up ‘rules’ and ‘dictionaryRules’

Taking feedback from @graphicore into account
Rewrite RuleController to get rid of some legacy code
More DRY, add some formatting/line breaks

Remove the unused property "ownRules".
Comment and whitespace fixes

Also fix a tiny code typo

Remove some fixed TODOs
Add recursion detection for @import

And a test
Always return the same instance of ParameterCollection

This is done just replacing the data. We need that behavior
to make sure that updated data from atImport rules is visible
by all users of the data.

Conflicts:
	app/lib/models/CPS/RuleController.js