added invoice model and updated the RegistrationCodes Model

@chrisndodge I have added the Invoice model and updated the RegistrationCode Model.
In Invoice model i have set the reference column to accept null values. In Ex-42 description, there is a point that we need Tag to associate with the sale and it is optional.

Kindly review the changes and let me know if anything is missing.

Thanks