Updated BigInteger - fixes by Kumpera at mono
Needle<T> can now be erred

Also Needle can no longer hold any other needle, only the predefined
StructSeedle<T> and ExceptionStructNeedle<T> for the erred state.

This changes will allow the implementation of inheritors to report erred
state correctly.
Needle<T>.IsFaulted

Needle<T>.IsFaulted will tell whatever Needle<T> is erred or not.
Fixed Exception Caching in LazyNeedle<T>
Free will not release the valueFactory

Set the value of the needle instead - you can set it to default(T)
Making ChacheNeedle closer to LazyNeedle
Upgrated CacheNeedle and WeakNeedle

Updated WeakNeedle to match Needle better
Updated CacheNeedle to match LazyNeedle better
Updated LazyNeedleTest