Fix memory leak in ProtoTest

ProtoTest eats over 2GB memory when it runs all test cases:

![mem1](https://cloud.githubusercontent.com/assets/2600379/5214986/d90857d0-765d-11e4-9685-8b67c35ab7ee.png)

That is because ``ProtoCore.Core`` is used in every test case, and ``ProtoCore.Core`` instance is not properly cleaned up (more details: static instance ``CLRObjectMarshaler`` holds ``ProtoCore.Core`` instance until ``ProtoCore.Core`` instance sends out ``Dispose()`` event).

Here we are not going to restructure these static instances in the VM. For ``ProtoTest``, a quick fix is to add a basic class ``ProtoTestBase`` which will handle setting and cleaning work. Now all test classes inherit from this basic class. 

Now ProtoTest memory usage goes down to less than 300MB:

![2d](https://cloud.githubusercontent.com/assets/2600379/5215766/c4778716-7665-11e4-8354-802152338122.png)

For all test cases we only use its default values. That is, ``SupressBuildOutput`` is always ``false``, ``ExecutionMode`` is always is ``ExecutionMode.Serial``. Except this ``kDynamicCycleThreshold``