Changed unnecessary uses of [<TestCase>] to [<Test>].
Removed some lingering uses of 'should equal'; now we use the strictly-typed 'assertEqual'.
Added some documentation comments to the CompilationCache record type and module.
Merged the code from the DerivativeClasses module (which contained only a value and a simple function) into the CharSet type and module.