Fix invoice saving edge case and extract logic to InvoiceAttributeUpdater

Assigning invalid line items to an existing record causes them to be immediately saved with an exception raised on any validation errors. The workaround is to temporarily configure the invoice as a new record.
Show current project in the navbar

I couldn’t find a particularly elegant way to do this. In the end an application level willTransition hook clears the ‘title’, and project/invoice routes set it appropriately.

Any future willTransition handlers should therefore return true, allowing the event to bubble up.
Handle cancel action when creating a new invoice
Invoice editing style improvements