Add Serializable interface

Serializable interfaces will implement Serialize, a function that
returns a std::array of char types with length 1024
Add SmbMessage class to store and serialize SMB messages.
Enforce SMB dialect format

There must be at least 2 dialects and the format is always 0x02, meaning a null
terminated string.
Enforce SMB protocol on SMB message
Restore writing of netbios and smb message headers to buffer
Limit writing of data to only serialized bits

size() of std::array gives the whole array size, not just the data that we have
written to it
Fix available read size
Add comment about rewriting netbios packet length
Use C++11 range-for statement
Edit smbmessage include guard to match file name
Set host and port from command line args

This makes testing the code easier.
One can do a quick socket test with `nc -l <port>`
or an actual AD communication test.
Merge pull request #10 from tcoyne/better-cli

Make sambbox easier to test by setting the host and port via command line args.
Merge branch 'master' into serializable
Merge pull request #9 from tcoyne/serializable

Add SmbMessage class to store and serialize SMB messages.
Merge branch 'master' into smb2

Conflicts:
	src/main.cpp