Add user data to message parser handlers
Add an authenticator that can get strings from the command line
Add SMB2Session class

This class will drive the SMB2 session. It contains the header, which stores
things like the session ID and message ID. It contains a parser to parse
responses. It contains an authenticator to get authentication tokens. It
contains alot.

This is still missing message population for the session setup requests and
handling of the negotiate and session setup responses.
Add initializers to smb2_hdr struct

This was needed for 2 members - session id and message id. I went ahead and did
all of them.

Is this better than memset? I don't know.
Turn some unions of smb2_hdr into anonymous unions

One I just didn't have a good name for, but they were both a little superfluous
given the names of their contents
Use initialization lists for object construction.
Revert "Use initialization lists for object construction."

This reverts commit e9232dbf91ef26bd07683ba32f196b240a7623a4.
Authenticator displays the challenge when getting the response
Process server messages

Process responses to our requests and formulate additional requests as
appropriate
Add ability to serialize array of ints to buffer
Add SMB2NegotiateRequest struct and payload
Add constructors to SMB2 messages to zero out structs

The brace initializers, for whatever reason, wasn't working.
Session sends SMB2 negotiate rather than SMB1
Merge branch 'session'

Conflicts:
	src/buffer.hpp
	src/parser.cpp
	test/buffer_test.cpp