SMB2 session management through a class

Creates a SMB2Session class which tracks a session. It contains alot - the network connection to the server, the parser for responses. the headers and ability to create payloads to make requests, and an authenticator for interaction so we can input authentication tokens.

It is not set up to properly parse the responses and construct additional requests yet.

Well, it compiles...
 How does this even work? SMB2Session isn't a subclass of Parser.