Rewrite ccExp using watchers
General source cleanup for ccExp directives
Clean up expiration tests
Properly cover ccExp with no parent form case
Merge branch 'cc-exp-refactor'

* cc-exp-refactor:
  Properly cover ccExp with no parent form case
  Clean up expiration tests
  General source cleanup for ccExp directives
  Rewrite ccExp using watchers

Closes #12