Added model and manager, plus support for Jump ball and shot

There is now a PlayByPlay model in place, as well as a
PlayByPlayManager to manage them.  The manager is also responsible for
creating PBP models based on the plays that it reads in.  So far jump
ball and shots (field goals - made and missed) are supported.
Added detection of free throws

Added detection, PBP constant, and unit tests.
Added support for rebounds
Added support for fouls
Added support for turnovers and made fix for fouls.

The detail constant for each foul type now matches what is scraped on
the page.  This allows us to just dump whatever is in the regex group
number into pbp.details instead of using a bunch of conditional blocks.
Added support for substitutions.
Added support for timeouts.
Added support for recording which quarter the play occurred in.
Added toJSON function for PlayByPlay

Also added test cases.
Added test with most PBP events stripped out.
Added model for Play-by-Play event
Added MongoDB support
Added MongoDB connection references in PBP Manager and support for maintaining players on the court.
Merge branch '20140206_play_by_play_scraping'
Removed local copy of Beautiful Soup.
Moved PlayByPlay classes into their correct location in the nba directory.
Moved PlayByPlay test files into the correct directory under nba.
Moved dfs_constants from a top-level file into a new shared directory.
Added PlayByPlay to all_tests