Switch to ng-debounce which can be canceled
Generalize whileValid, create a cancelable promise
Kill webutil in favor of general purpose Util
Organize send form into payment and destination