Reverted internal control variable to int

The internal control variable is there to distinguish what is got from
TryTake and what was got as a notification from a wrapped Progressor.
Various types marked Serializable - also clean up
Added suppression for code analysis false positive

Also fixed reference to _emptyTypes in the template
TypeHelper.ConstructorHelper.tt
Added destructor to Disposable

What was I thinking? Why didn't it have one?
ReadWriteLock is now disposable
Some style fixes
Changed the way LazyInitializer is imported

LazyInitializer.mono is meant to be imported from mono without
modifications - the tt will add conditional compilation rules and mark
the file as autogenerated.
Small style fix
Split ReadWriteLock into multiple files

Because for all the good multiple types in a file is for commits, it is
not welcome.