Initial commit
The entire existing sets of automated tests for MG

On Windows, the Tests solution contains a version of the tests which can
be run against XNA as well as a version that can be run against
MonoGame.  These are standard NUnit test assemblies, and should be run
as normal with NUnit.

For Mac and Linux, the state of NUnit is trickier.  Mono/MonoDevelop
ship with quite an old version, so a custom runner is used.  So, rather
than using NUnit or MonoDevelop's built-in runner, a custom runner is
provided that executes the tests using the version of NUnit in
ThirdParty/Libs.  After the tests have completed, the default browser is
invoked to view the HTML version of the results.

GameTest
- Collects various tests that make assertions about the contract of the
  Game class in XNA vs the current contract in MonoGame.

GameTest+Properties
- Makes basic assertions about the Game class's properties.
- Tests for default values, read-only or read-write status, availability
  during the lifetime of the Game, etc.

GameTest+Methods
- Makes basic assumptions about the Game class's methods.

CommandLineInterface
- Wraps the core logic for invoking NUnit into an opaque wrapper that
  can be easily invoked from different platforms.
- Currently writes NUnit results in an abbreviated format to stdout, the
  standard NUnit xml format as test_results.xml, and an xsl-transformed
  test_results.html for easy viewing.

Components/
- A collection (to be extended) of reusable GameComponent and
  DrawableGameComponent implementations that make it easy to compose new
  tests quickly without having to write excessive boilerplate code.

Visual/BasicVisualTests
- Tests the most rudimentary functions of drawing (clearing the screen,
  rendering a bit of text, ordering draws)

Visual/IntermediateVisualTests
- Tests functionality like the Draw2D sample.  In fact, it is currently
  a port of that sample.

Resources/
- Houses the xsl used by CommandLineInterface, as well as sample data
  and a Makefile for easy development (well, easy on Mac, anyway).

Assets/
- Houses fonts, textures and other assets used in the creation of
  automated visual tests.
- Also hold reference images that represent known-good renderings of the
  output of visual tests for comparison with the current rendering.
Renames IFrameSource to IFrameCaptureSource
Adds affordances, clarifies class names, reduces waste

Adds UpdateGuard, which can be used to ensure that Update actions only
occur once per Draw call.  VisualTestDrawableGameComponent and
VisualTestGameComponent use this class and provide UpdateOncePerDraw to
inheritors.

Renamed VisualTestBase to VisualTestFixtureBase.

Updates README.md.
Updates ImplicitDrawOrder reference images to XNA versions
Adds command line options to test harness

Adds several command line options to the Test harness to improve the
test running experience (primarily for automation).  Run the harness
with --help to see them.

Moves the libraries needed by the test projects into the test
repository.  They didn't really belong in ThirdParty/Libs and this means
people who don't want to run tests never have to pay the penalty of
downloading these libs.
Adds test harness to Windows, updates test library references
Updates Linux project library references
Fixes Linux test assembly name
Adds 64x64 MonoGameIcon assets, instead of 128x128

The Draw2D in the Samples project uses the 64x64 image, so the test does
too now.  It's less scary, and it also happens to look nicer.
Mac test runner runs in background mode

The Mac test runner now runs in background mode by default.  Also,
removed some test command line args that were accidentally checked in.
I wasn't expecting MonoDevelop to write them to the .csproj.
Adds several SpriteFont rendering tests
Sets Linux tests to render in compatibility mode

Uses LIBGL_ALWAYS_INDIRECT to force compatible rendering
for the tests so they can be run from a VM.  This is not
ideal, but for now it works.
Ports interactive tests from Samples

Moves Samples/Tests into Tests/Interactive.  Eventually these
interactive tests should be made automatic where possible.  Where
automation is not possible, we should still try to streamline the
process of manually running and proofing them.
Merge pull request #2 from kungfubanana/sample_test_reorg

Ports interactive tests from Samples
Updated README to reflect fixed Mac Synchronous run mode
Simplifies test asset management

All test assets are now managed in a separate project, so that file
management does not have to be repeated for each platform.  All the
platform-specific projects simply reference the Assets project and get
proper copying for free.
Adds new font tests

Adds two new font tests.  One for a drawing issue with DataFont, another
to test for correct handling of characters not contained in a particular
spritefont.
Simplifies font testing, adds filtering to runner

DrawString tests have been rearranged so that their output is in a
single 'DrawString' directory, rather than separate directories for each
test.

CommandLineInterface now implements regular expression-based filtering
of tests.  Use -i=/regex/ or -i=PlainText to include tests.  Use
-x=/regex/ or -x=PlainText to exclude tests.  Multiple -i and -x flags
may be chained together and are applied in order to constrict the set
of tests that are run.
Add shader tests