First full draft of code. First batch of unit tests.
Added NuGet packages to gitignore file.