Follow-ups:

* don't call perFileCallback when we don't need to
* correctly return a promise from HtmlImports.populate in all cases