Add TimeoutAttribute to Silverlight

This fixes #129 

The `MaxTimeExceeded` test was failing not because of the `TimeoutAttribute`, but because the `MaxTime` attribute for Silverlight does not work with the low time resolutions of the test. This is because it measures time using `DateTime` instead of a `StopWatch`. It was also using the test start time which is now UTC.

The second commit adds the `TimeoutAttribute` to Silverlight. It wasn't available or supported, but it only required some minor changes to the `WorkItem` and `ThreadUtility` classes to get it working. The Timeout in Silverlight isn't as robust as the full .NET version, but Silverlight doesn't have the fallback methods on Thread.