Added matrix.rb to so that we can exercise all the code that only runs when the contracts are included.  Fixed a few bugs that were found in doing so.  All paths are now relative to the 'src' directory.  In the future, this matrix.rb should probably be moved to a separate testing directory, since we don't need to give it our contracts in general, but it will be useful for validating our contracts against the original class.