This commit introduces the new parameters to the protofiles and the
cmd interface. If easy autoloop is enabled we just ignore the rest of
the rules and use the defaults of easy autoloop.
This commit saves the RPC request used to construct the `Parameters` on
disk. Since it's a proto message, an easy way to read/write it is to
rely on the proto marshal/unmarshal methods. A side effect is that
migration also becomes easy as proto message have its own internal
mechanism to keep track of the compatibility.
Previously, the feepercent flag on autoloop was set to an IntFlag and
later converted to Float, leading to the issue where users couldn't
specify decimal rates even though we allowed it.
In an effort to surface more information about why autoloop is not
executing, we add an error when suggest swaps is called with no rules.
In other cases we can surface a reason enum with each rule that is set,
but in the case where we have no rules, there are no results to
accompany with reasons.
As we add more paramters to the liqudity manager, it will become more
difficult to include them in a single cli endpoint with rules. This
commit renames the existing setparam command (which is only used for
rules at present), so that we can have a dedicated paramters cli
command for all the new values we are adding.