Allow parsing nullable types

This fixes issue #11.

My first thought was to add a new parser to the start of the pipeline to handle nullable types, however this would have required passing `SettingValueConverter` into the `Parse` method (and making it a public type) so that we could run the pipleline again with the underlying non-nullable type. 

I settled for handling it as a special case before entering the pipeline instead.

Happy to discuss.