Implemented argument length checks in VectorOperator

Each VectorOperator contains a Set of accepted argument lengths that
gets filled in the implementations of an abstract method of VectorOperator.

If the argument length provided from the input is contained within the set
then the input is accepted and passed onto the operator for calculation.
Otherwise an exception is thrown.
Log operator can accept any length of argument

Changed infinite argument constant to be Integer.MAX_VALUE.