Implement TimeoutAttribute for compact framework

This implements TimeoutAttribute for CF and fixes #326.

I modified conditional statements until it worked and used Neil's implementation of several classes.

There is one worrisome point...

In WorkItem.cs I used if (!thread.Join(timeout)) which is the most natural way to code the join.

However, I have a vague memory that this caused a problem in the past, which led to the substitution of 
    thread.Join(timeout)
    if (thread.IsAlive)
in it's place. Wish I had entered a comment when that change came in.

I left a comment in the code in case the non-remembered issue resurfaces. :-)

@oznetmaster Please make sure to review this.