Refactor default change and project callbacks

Reuse the same callback implementation for both types, passing
in a default target to redirect to if no message is returned.

Change-Id: I5a9dfde5e81d8c5c6a76fe082905dbf09fb944fb
1 file changed