Introducing new stubs for custom CP2 instructions

A default CP2 doing nothing is implemented, and a CAP environment
variable can be set to 1 when calling make to build the simulator with
the CHERI capability coprocessor (not yet implemented)
Adding place holders for all the instructions
Refactor the source files in subdirectories

- Isolating sml specific things from the rest of the directory
- Isolating cheri specific L3 code from the base MIPS L3 code
- Updating the Makefile accordingly
- moving the readme at the top level of the repository
Extracting the exception behaviours in their own stubs
Extracted the initialisation mechanism in its own stub
Added a a stub for TLB translation and a mlton compile option

- In the CHERI case, EntryLo type has extra fields that are checked on
  address translation
- The "inline" mlton option was set to 1000 reduce the compile time in
  the CAP case
Fixing CHERI IFETCH and TLB Exceptions
Factored the call to the tlb address translation function in the
LoadMemory function
Factored the call to the TLB address translation in the StoreMemory
function
Merge commit '9f68f62' into tmp
Merge commit '2ea55bb' into tmp
merged  master with local capability refactoring changes
Merging in the preliminary changes for capability support

These include mostly refactoring the code in smaller files,
stubs conditionally included through the makefile.

The hierarchy of the project separates the cheri specific code in
its own sub-directory within the l3 sources directory.