common: Introduce interfaces for custom goals

This commit introduces classes and typed which will be needed to
implement custom goals in various LizardFS modules.

This commit assumes that there will be possibility to define at most 20
goals. By default goal named "n" has ID=n and requires n copies.

Change-Id: I3cd369d0946efa69e5d8c22105c27adaa3658531