Finished solution penalty calculation

All soft constraints are being taken into account, however I’m pretty
sure that it could be done more efficiently