Create Invoice creates two invoices if double clicked

If you double click Create Invoice on the create invoice page, it's possible to create two invoices.  The first will contain all the hours, and the second will contain no hours.  This should fail if no hours exist to get included in the invoice.  A transaction might be necessary to prevent other race conditions as well if one isn't in use already.

(Note: this pull request's fix requires Django 1.4, so don't merge until we've dropped Django 1.3 support.)