Update team detection in penalty parser

We now use the type of penalty to try to determine what team committed
the penalty. If this fails we fall back to the player, and if this fails
we print a message warning the user and return None.