Invariant and Cache Template Specialization

Moved more framework level classes into the user space in order to
provide template specializations for them. Implemented full invariant
reconstruction including cryptographic invariants.
Framework Alignment

Updated the Action class to keep in line with framework changes.
Multithreading

Updated virtually all classes in order to make them reentrant and thus
amiable to multithreading. Reduced the role of the module and now work
primarily with the states themselves, saving us some overhead.