Made EmptyReadOnlyNeedle a class not a struct
Waiting improvement in HashBucked code
Added special cases for SpinWait

The objective is to avoid creating and calling a delegate in common
cases
Added  a few other cases

Hopefully this will help to standardize some semantics and find
replacements or improve the implementation for particular cases.
Reordered parameters due to conflicts