Fixes for #114.

Where relevant, tokens are obtained in a loop with an increasing buffer size as long as SEC_E_BUFFER_TOO_SMALL or SEC_E_INSUFFICIENT_MEMORY is returned.

As discussed in the [forum](https://groups.google.com/d/msg/waffle-users/-G_0xZpAm84/cywnO8ALVJcJ), there is still a case that is not dealt with here. Namely, if the buffer size is too small then `TestNegotiate()` will fail with:
```
System.ComponentModel.Win32Exception : Not enough memory is available to complete this request
        WindowsSecurityContext.cs(143,0): at Waffle.Windows.AuthProvider.WindowsSecurityContext..ctor(String username, WindowsCredentialsHandle credentials, String securityPackage, Int32 fContextReq, Int32 targetDataRep)
```
It only fails on the second call to `InitializeSecurityContext()`.
Have you ever gotten a `SEC_E_BUFFER_TOO_SMALL` here? It's not a return value from this function. MSDN [says](http://msdn.microsoft.com/en-us/library/windows/desktop/aa375509(v=vs.85).aspx) that you can only get `SEC_E_INSUFFICIENT_MEMORY` and the [Java Code](https://github.com/dblock/waffle/blob/6c3b820e9f0aac8fb2ea8add48d8127b0fbf89b2/Source/JNA/waffle-jna/src/main/java/waffle/windows/auth/impl/WindowsSecurityContextImpl.java#L111) doesn't check for it.