Turn SMB messages into similar structure to SMB2
Abstract out Message and Payload from SMB and SMB2 messages

Turn serializable interface into Message and Payload, which can be serialized.
A message, though, has a logical payload and is realized by a payload parameter
to the serialize method.
Set up naming in parser for SMB as well as SMB2 messages

The response parser should handle SMB responses as well. Change the name of the
class and add the concept of SMB handler functions
Rename parser files to dispatcher
Replace Parser handler code with Dispatcher Interface code.

Use an interface to define the repsonse callback functions and send the session class to the
dispatcher (parser) class at the moment of dispatching responses, instead of sending the
session class to the parser class as a void pointer at initialization.
Add method to NetworkBuffer to set the size of the buffer.

This was added for when we read from a socket to a NetworkBuffer,
which won't edit the size of the buffer.
Replace Session's Send pointer parameter with a reference.

Pointers are reserved for output parameters, but this is a weird
situation.  I'm not sure I know how I feel about this.

NetworkBuffer needs to go through some more changes.
Rename parser_test to dispatcher_test
Add GMock library to unit tests
Merge remote-tracking branch 'origin/smb' into dispather

Conflicts:
	src/dispatcher.cpp
	src/parser.hpp
	src/session.hpp
Edit dispatcher include guard to match file name
Check for null dispatchee first in Dispatch()

No use in parsing all that message if it ain't going anywhere.
Set error code in dispatching methods.

Spelling correction as well.
Add const to Send parameter
Remove smb message struct

It is encapsulated in SMBMessage.
Along with this we don't need the test cases for verifying SMB structure sizes -
we don't rely on packing to make sure the serialization is occurring correct, so
the tests are meaningless now.
Set up parser to parse both SMB and SMB2
Parse SMB response header
Parse SMB negotiate response
Fix compile error checking loose throw specifiers
Fix command comparison in parser

The type was being read incorrectly and examining too many bytes