Add transaction_date to entries

I'm a full-time accountant turned developer. While created_at works for some entries, there are many times where an entry is made days after a transaction, and a "custom" transaction_date.

A few examples: 
- Bookkeepers getting a list of transactions from their clients
- Accrual entries after a month or year end (i.e. accountants make entries on July 1 to "close the books" for June. The entry is made on July 1, but it affects June's numbers.)
- Any type of entry that is made manually

My solution in the code gives the functionality I think is needed, but if you had a better idea I'm open to learn.