Implemented an ICache for persisting temp data between 'round-trips'.

- Added an ICache interface to replace the hardcoded dependency of a Session to store temp data in the Module or Controller.
- Module or Controller defaults to their respective SessionCache concrete classes if nothing was setup in the app starts.