Validates the provided configuration. The provided map contains
all configs including any reconfigurable configs that may be different
from the initial configuration. Reconfiguration will be not performed
if this method throws any exception.
Reconfigures this instance with the given key-value pairs. The provided
map contains all configs including any reconfigurable configs that
may have changed since the object was initially configured using
Configurable.configure(Map). This method will only be invoked if
the configs have passed validation using Reconfigurable.validateReconfiguration(Map).