Make the args to ES6 Promise resolve and reject optional.

This allows the following code to compile successfully:

var p = new Promise(
function(resolve, reject) {
if (someCondition) {
resolve();
} else {
reject();
}
});
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81791870
Simplify some critical path NodeTraversal logic
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81799760
Add HTMLPictureElement to the externs.

Based on https://github.com/google/closure-compiler/pull/734 from Chad Killingsworth.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81804012
[NEW TYPE INFERENCE] Allow Objects, like Functions, to be loose
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81808911