Add additional table parsing for player extraction

We now parse all the tables that contain players. The previous method
missed some defensive players.
Add penalty handling in play_by_play.py

We now plays with penalties and store the results in a JSON
object.

Add a function library (raw_data_parsers/parse_play_by_play/penalty.py)
to assist in this. Add test cases for all functions in the library.