Incorrectly bound form not propagating changed inputs

See: http://stackoverflow.com/questions/17606936/angularjs-dot-in-ng-model

Also some minor fixes and style improvements, e.g. $q promises rather than callbacks.