This is to avoid calling HeapFree on random pointers when
DeleteSecurityContext is called on a context that hasn't had a second
InitializeSecurityContext called on it, which would otherwise intialise
those pointers.
This prevents races with two threads using the helper object at the same
time on two different context handles, eliminates the need to free the
credential handle after freeing the context handles and also prevents a
crash caused by not clearing session_key in DeleteSecurityContext.
Also, as starting with Samba 3.0.24, ntlm_auth will have all the features
we need, require that as minimal version and remove odd old-version
compatibility hacks.