[Dev]add a new Interface called AbstractScheme, and a SchemeParameter to
retrieve parameters
an AbstractScheme get SchemeParameter as input, use it to generate the
internal name of a scheme.
The internal name is currently determined by (
   1. input parameters
   2. the metadata it uses
)