Updated SingleTimeExecution

SingleTimeExecution had been working wrong due to recent changes in
ThreadingHelper
New SpinWaitSetUnless
Changed conditions

- SpinWaitRelativeSetUnless
- SpinWaitRelativeExchangeUnless
Will set the value to unless but will not operate if the value is equal
to unless
Template fix

There was an error in recent tempalte for SpinWaitSetUnless
Updated Disposables

Changed disposable implementation to use SpinWaitSetUnless instead of
SpinWaitSet
New extension method ReadComplete on Stream

- ReadComplete reads from a stream until the requested length is taken.
- Also done clean up to the file.
Clean up
Fix: disposable fields should be disposed
Added GetAttributes and HasAttribute ext. methods
Added extension methods for delegate types

- GetDelegateMethodInfo
- GetDelegateParameters
- GetDelegateReturnType
New helper methods for Predicate<T>
Added Range and RangeExtensions
Where taking Predicate is no longer an extension

This method was causing conflict with Linq
Support Predicate<T> expect Func<T, bool>

Fixed batch build - fixed references to Where.
Avoiding the out parameter as the suggested
Added GraphHelper

GraphHelper allows iterating over graphs and trees
Added FolderEnumeration

FolderEnumeration provides an API to iterate over files and folders, it
will use Directory.GetFiles and Directory.GetDirectories from .NET 2.0
to .NET 3.5 from .NET 4.0 onward it uses Directory.EnumerateFiles and
Directory.EnumerateDirectories