Better operator overload for GoalFunction

Now multiplying by a scalar returns a GoalFunction as well.
Adding concatenates goal functions instead of chaining them together.
Implemented increment (+=) and special methods for adding misfits and
merging goal functions