Fixing how keys are retrieved from data
Making it syntactically possible to delete a list key
Adding converter functionality
Fix another maximum recursion depth possibility
Fixing dot_joiner on strings
Adding the idea of activating the converter

This is so converter.done is harmless until after the converter is added
Make dot_joiner able to take multiple arguments
Introduce the idea of values that aren't prefixed

This is useful for dict like structures that you don't want to be
returned as a prefixed Mergedoptions object
Make the path used by converter the full path
Adding the Path class and tests
Moving dot_joiner logic into it's own file
Moving converter logic into it's own file
Using the new Path, Converter and Joiner logicz
Making sure part paths are passed in not as Path

MergedOptions will not prefix Path instances, and in this function we
still want that to happen
Adding a method to get the root of a configuration
Using dot_joiner when comparing paths
Making prefixed_path_string return joined as well.
Improving helper.value_at
Optimising dot_joiner a little
Trying to pass around joined as much as possible to avoid recomputation