Fixed accepting scores from invalid runs. Changed score computation.

Changed using score from computeBasicFitness() method, we are now using
computeWeightedFitness(). The basic fitness score only took into account
distance, time spent on level, coins and whether it completed the level
or not. The weighted fitness score also cares about things like kills
and items picked up (so it should be more useful for our agent).