LazyDisposableNeedle now releases the waithandle
small refactor
Allocate is now protected
LazyNeedle changed to use FuncHelper
Fix (call Close instead of Dispose)
CacheNeedle has been put on pair with LazyNeedle