perf($q): move Deferred and Promise methods to prototypes

Opening PR for tests and comparison with other solutions for `$q` perf.

NOTE: Deferred doesn't get all the advantages of moving methods to the prototype,
since the constructor binds instance methods to "this" to support unbounded execution.

NOTE: This change increases the gzipped version by 100 bytes.
There's already a Promise class (called $Q or Q) on [line 568](https://github.com/angular/angular.js/pull/8437/files#diff-8c0e145b42564a7c2838e221e0a0322aR568) --- it probably makes more sense to use the one that's already there