Constructs a new engine with no providers attached
Attach a provider
Given a structure this will fill it up with values by querying the attached provider(s)
The implementation method for a provider. This must return true when an entry by the name of n is found and then set its associated value via v_out. Otherwise, false must be returned.
Provides us the value that maps to the given name
The Engine is a provider which allows multiple _other_ providers to be attached to it.
During provisioning if a name is found in a provider then it is returned, else the next provider is checked.
The order in which providers are attached is important as that is the order in which they will be queried