Add TryScan and TryReceive functions to make dealing with timeouts easier

TryScan/TryReceive work the same as on the normal .NET mailboxprocessor - timeout returns None, otherwise Some(msg).

Very useful for anything involving polling on an interval.