Added reason column.  Haven't created a migration or anything for this yet.
Coupons are created properly, and spawn discount objects.  Still need more test cases though.
Added a magic __call() function that checks interfaces with is<interface>
Added a default right in the migration.. Not great practice..