Added migration to add 'public' and 'public_id' columns to 'badge' model.

No unit tests yet, though!
Added test for add-public-columns migration.

This involved refactoring a bunch of migration.test.js to make adding
future migration tests easier, and to avoid duplication of test code.
rename public_id column to public_path.
Merge pull request #545 from toolness/public-column-migration

Public column migration 

closes #304, #306