Made RegisterClassMap overload that takes CsvClassMap instance public

The `RegisterClassMap` overload that takes a `CsvClassMap` instance was `protected`. This had the unfortunate effect that I could not control the creation of that instance myself, the creation was done inside the `CsvConfiguration` class. I need to be able to provide an instance myself to support dependency-injection in my code, as I want to be able to create a `CsvClassMap` instance in which fields are injected through an IoC container.

I have also added test methods that verify that the behavior is still correct.