Fixed and added some null-argument checks

The problems were found using Code Contracts static analyzer, settings for
which were added to the SamaxLibrary project file.
Added some contracts to the SidByteParser class

Added some ensures contracts to the methods and properties of the
SidByteParser class. Also added some object invariants for the class.
These contracts are checked by the runtime checker, and they are
nonintrusive in the sense that the project can be built with the runtime
disabled and possibly even without Code Contracts installed (without
running ccrewrite on the assembly, to be specific).

The static checker seems to be flawed and hard to work with (and requires
the Premium edition (or better) of Visual Studio), so it is disabled.
Refactored the unit tests for SidByteParser

The AmountOfBytesLeft property of SidByteParser was made public, and the
unit tests were updated accordingly. Most unit tests were also
parameterized, which made the removal of most helper methods possible.
This has made the test fixture much more compact.
Wrote unit tests for SidByteParser.ReadByteArray
Renamed most unit tests (shortened the names)
Wrote tests for SidByteParser.ReadAsciiString
Added some contracts to the SidByteWriter class
Added some more contracts to SidByteParser
Started working on unit tests for SidByteWriter
Wrote unit tests for SidByteWriter.AppendInt32
Wrote tests for SidByteWriter.AppendDwordString
Made tests for the AppendEnumAsDwordString method
Wrote tests for SidByteWriter.AppendAsciiString
Wrote more unit tests for SidByteWriter
Finished the unit tests for SidByteWriter

Some of the tests could be improved, but they are good enough for now.
Wrote tests for SidByteParser.ReadDwordString
Finished the unit tests for SidByteParser
Started working on unit tests for C>S SidAuthInfo
Finished the unit tests for C>S SidAuthInfo

The unit tests are very rudimentary but good enough for now.
Wrote unit tests for S>C SidAuthInfo