Use the same code structure for pumps

A class to wrap pump structures has been created and it is instantiated
by means of a factory. Right now, only pumps based on power instead of
curves are working.
The checks for the parameters used in the binaries epanet/baseform
wrappers are delegated to a new class.
Reflects in the name that the class is abstract
Improves error handling