Add play_by_play.py to parse pbp data

play_by_play.py currently fills in the 'play', 'state', 'score', and
'number' sections of the 'plays' JSON field. Still need work on
'turnover' and 'penalty', as these can happen multiple times per play.

The function library, raw_data_parsers/parse_play_by_play.py, needs
clean up and tests.
Add tests for row_type in parse_play_by_play.py
Add tests for get_play_type in parse_play_by_play
Add Starting Lineup to converter.py

The starting lineup is now saved, and the players entered into an
internal set which will be used to match players to teams when parsing
penalties and turnovers.

We still need to grab the non-starting players from the various stats
boxes.
Add __get_all_players() to converter.py

__get_all_players() goes through the various stat tables and adds all
the players to the appropriate internal team set. This is necessary
because not all players are listed in the starting lineup, but we need
to know every player so that we can assign penalties and turn overs to
teams (which are otherwise only categorized by player name).
Break parse_play_by_play.py into sub libraries

Also add passing of team data to the PBP class from the converter class.
Remove parse_starter.py
Team code is now only used for home/away

In the JSON, "away team" and "home team" use the team codes, but all
others use "home" and "away". For example, penalties are on "home", not
on "DEN".
Update parse_play_by_play functions to use strings

Convert all functions now take strings instead of BeautifulSoup4
objects.

Add full test suite for these functions.

Update play_by_play.py to use these new functions.
Change test cases to be more "fun"!
Change DEN to OLY in test case
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.
Fix bug in assignment of offense from kickoff

Fix bug where the kicking team was being assinged as the offense
incorrectly.
Remove all custom error types
Fix bug in data_helpers/team_list.py

Fix incorrect mapping of SFO to SEA and SEA to SF.

Sort list.
Fix handling of blank plays and onside kicks
Add a set of rosters for each team for each year
Add get_season function to parse_title_info.py
Update rosters.py

Add a warning at the top about the non-uniqueness of entries.

Names of the form "A.A. Player" have had another entry of the form "A. A.
Player" added, and likewise for the reverse transform.

Players with double spaces between their names have had them removed.

Several players have had extra entries added to cover alternate
spellings (or typos) of their names, others have had their spellings
fixed:
- "Aaron Sears" has had "Arron Sears" added.
- "Adam Jones" has had "Pacman Jones" added.
- "Ahmad Carroll" has been added to the correct teams.
- "Anthony Davis" has had "Anthony S. Davis" added.
- "Anthony Parker" has had "Anthony E. Parker" added.
- "Antony Jordan" has been spelled correctly.
- "Bart Johnson" has been added to the correct team.
- "Billy Baber" has had "Bill Baber" added.
- "Bracy Walker" has been spelled correctly.
- "Bradford Banta" has been spelled correctly.
- "Brandon Mosley" has been spelled correctly.
- "Brian Allen" has had "Brian L. Allen" added.
- "Brian S. Williams" has been added to the correct team.
- "Cameron Cleeland" has had "Cam Cleeland" added.
- "Chad Ochocinco (Johnson)" split into "Chad Ochocinco" and "Chad Johnson".
- "Chinedum Ndukwe" has had "Nedu Ndukwe" added.
- "Chris Owens" has had "Christopher Owens" added.
- "Chris White" has had "Chris L. White" added.
- "Chukie Nwokorie" has been spelled correctly.
- "Corbin Lacina" has been added to the correct teams.
- "Corey Harris" has had "Corey A. Harris" added.
- "Curtis Deloatch" has had "Curtis DeLoatch" added.
- "Daimon Shelton" has been spelled correctly.
- "Dan Campbell" has had "Daniel Campbell" added.
- "Dan Connolly" has had "Daniel Connolly" added.
- "DeDe Dorsey" has had "De De Dorsey" added.
- "DeMarcus Van Dyke" has had "Demarcus Van Dyke" added.
- "DeVier Posey" has been spelled correctly.
- "Demetress Bell" has been spelled correctly.
- "Derek M. Smith" has had "Derek Smith" added.
- "Donté Curry" has had "Donte Curry" added.
- "Dovonte Edwards" has been spelled correctly.
- "Edgerton Hartwell" has had "Ed Hartwell" added.
- "Edward Jasper" has had "Ed Jasper" added.
- "Frank Chamberlin" has been spelled correctly.
- "Fred Weary" has had "Fred E. Weary" added.
- "Gennaro DiNapoli" has been spelled correctly.
- "Geoff Hangartner" has been spelled correctly.
- "Hank Poteat" has been added to the correct team.
- "Herb Taylor" has had "Herbert Taylor" added.
- "Ifeanyi Ohalete" has been spelled correctly.
- "Ike Ndukwe" has had "Ikechuku Ndukwe" added.
- "Ishmaa'ly Kitchen" has had "Ishmaa'ily Kitchen" added.
- "J. P. Darche" has had "Jean-Phillipe Darche" added.
- "J.P. Foschi" has had "John Paul Foschi" added.
- "Jake McQuaide" has had "Jacob McQuaide" added.
- "James H. Atkins" has been added to the correct team.
- "Javiar Collins" has had "Javier Collins" added.
- "Jeff Thomason" has been added to the correct teams.
- "Jeffrey Linkenbach" has had "Jeff Linkenbach" added.
- "Jeremy Parnell" has been added to the correct team.
- "Jimmy Kleinsasser" has had "Jim Kleinsasser" added.
- "John Corto" has had "Jon Corto" added.
- "Jonathan Stinchcomb" has had "JonStinchcomb" added.
- "Jonathon Amaya" has had "Jonathan Amaya" added.
- "Joseph Jefferson" has had "Joe Jefferson" added.
- "Juqua Parker (Thomas)" split into "Juqua Parker" and "Juqua Thomas".
- "Kellen Winslow" has had an entry for "Kellen Jr. Winslow" added.
- "Kenderick Allen" has been spelled correctly.
- "Kevin R. Smith" has been added to the correct team.
- "Keyuo Craver" has been spelled correctly.
- "LaDouceur" had "Ladouceur" added.
- "Lance Legree" has had "Lance LeGree" added.
- "Larry L. Brown" has been added to the correct team.
- "Le Kevin Smith" has had "LeKevin Smith" added.
- "Malaefou MacKenzie" has been spelled correctly.
- "Manny Ramirez" has had "Manuel Ramirez" added.
- "Marcus Spears" has had "Marcus R. Spears" added.
- "Marcus U. Bell" has been added to the correct team.
- "Markelle Martin" has been spelled correctly.
- "Marquand Manuel" has been spelled correctly.
- "Marshal Yanda" has had "Marshall Yanda" added.
- "Matt Hatchette" has had "Matthew Hatchette" added.
- "Micah Johnson" has been added to the correct teams.
- "Michael Harris" has had "Mike Harris" added. Note, there are two "Mike Harris" in the NFL, the other plays for JAC.
- "Michael L. Lewis" has had "Mike Lewis" added.
- "Michael M. Lewis" has had "Mike Lewis" added.
- "Michael Nattiel" has had "Mike Nattiel" added.
- "Micheal Spurlock" has been spelled correctly.
- "Mike A. Jones" has been renamed to "Mike Jones"
- "Mike Hamlin" has had "Michael Hamlin" added.
- "Mike Higgins" has had "Michael Higgins" added.
- "Mike Mitchell" has had "Michael Mitchell" added.
- "Mike Williams" has had "Mike D. Willaims" added.
- "Morgan Trent" has been spelled correctly.
- "NaVorro Bowman" has had "Navorro Bowman" added.
- "Nate Bussey" has been added to the correct teams.
- "Nate Harris" has been added to the correct teams.
- "Nate Stupar" has had "Nathan Stupar" added.
- "Nicolas Luchey" has had "Nick Luchey" added.
- "Pat Johnson" has had "Patrick Johnson" added.
- "Pat Lee" has had "Patrick Lee" added.
- "Pernell McPhee" has had "Pernel McPhee" added.
- "Philip Crosby" has been spelled correctly.
- "Quincy Black" has been spelled correctly.
- "Ray Austin" has had "Raymond Austin" added.
- "Ray Thompson" has had "Raynoch Thompson" added.
- "Raymond Perryman" has had "Ray Perryman" added.
- "Reggie D Brown" has been added to the correct teams.
- "Ricky Jean-Francois" has been spelled correctly.
- "Rob Francois" has had "Robert Francois" added.
- "Robert Thomas" has had "Robert W. Thomas" added.
- "Rod Coleman" has had "Roderick Coleman" added.
- "Rod Jones" has had "Rod E. Jones" added.
- "Rod Monroe" has had "Rodrick Monroe" added.
- "Shahriar Pourdanesh" has been spelled correctly and added to the correct teams.
- "Stephen Neal" has had "Steve Neal" added.
- "Steve Cheek" has had "Stephen Cheek" added.
- "Steve M. Smith" added to the correct team.
- "Stylez (Greg) White" has had "Stylez G. White" added.
- "T. Marcus Spriggs" has had "Marcus Spriggs" added.
- "Todd Devoe" has been spelled correctly.
- "Tony E. Jones" has been added to the correct team.
- "Tra (Williams) Thomas" has had "Tra Thomas" added.
- "Tre' Stallings" has had "Tre Stallings" added.
- "Trenton Robinson" has had "Trent Robinson" added.
- "Tyrone M. Williams" has been added to the correct team.
- "Ula Tuitele" has had "Maugaula Tuitele" added.
- "Vinny Sutherland" has been spelled correctly.
- "Vladimir Ducasse" has had "Vlad Ducasse" added.
- "Will Beatty" has had "William Beatty" added.
- "Will Whitticker" has been spelled correctly.
- "William James (Peterson)" has had "Will James", "Will Peterson", "William James", and "William Peterson" added.
- "Willie Williams" has had "Willie J. Williams" added.
- "Zack Bowman" has had "Zackary Bowman" added.