Fix invalid size check
Replace exception string with static object

Exception messages should be as static as possible for reuse.  Replace
hard-coded message with a static property.
Teach constructor to set m_maxaddr
Add accessors for size and maxaddr
Start of test framework

Start unittesting by implementing some tests for the memory class.
Add getByte* tests

Check that getByte returns a value
Check that getByte properly does bounds checking
Move memory extent msg to static string
Move negative memory address msg to static string
Change test of getByteSafe for clarity.

getByteSafe test should test for a non-default value to ensure that it
is actually retrieving a specific location.  Use setByteSafe to create a
value to look for.
Add setByteSafe test
Minor cleanup.
Add test suite
Teach MemoryTest to look for exceptions on setByte

SetByte needs to throw exceptions on boundry conditions. Make it so.