[system.transactions] Throw exception when an invalid TimeSpan is provided

MS.NET throws and prevents construction when an invalid (negative) timeout is provided.

This is invalid: `new TransactionScope (null, TimeSpan.FromSeconds (-1))`, and should throw an `ArgumentOutOfRangeException`