Options Refresh

1. Splitting out the Configuration Providers (command line, environment, yaml...)
    They now have the ability to provide an Option Source that contains the name, value and source
2. The merging has now been made explicit through a sequential merge that given a list of Options Sources, use the order they were passed in, as the priority order from least to most
3. The parsing has also been made an explicit step as well.