Add ability for buffer to switch endian conversion

Turns out that netbios headers are big endian, but all SMB (all versions) are
little endian.
Make the endian switch barrier a template parameter

Since we have the size of the buffer as a template anyway
Make unit tests us the templated switch index rather than assuming 4

The unit tests assumed the original implementation of a hardcoded switch at
index 4 (for netbios sessions). Update the unit tests to use the templated
switch index and add a test for no switch (index 0).
Merge pull request #26 from tcoyne/buffer

Buffer accounts for switch from big endian to little endian