Test Plans and Test Items (#30)

This PR introduces the concepts of `TestPlan` and `TestItem` and DRYs up shared functionality with `StatusCategories` and `StatusItems`.  Here's an overview of the functionality:
- Projects can have many test plans
- Each test plan is a list of a project's views, where a user can add one or more test items to each view
- Users can then add status categories (columns of grouped status items) to a test plan, which will create a status item for each test item on the test plan