Suppress output from BOM task

The BOM task outputted a line of text per file it modified which was too
noisy. Grunt nor the BOM task have a clean way to suppress the output so
the solution was to write a custom BOM task which is quieter.
Enable more tests outside of IE

For #134. Enabled Groups, HorizontalList, and UniformGridLayout tests

Due to Chrome and Firefox flexbox bugs, the surface isn't sized to
content. We now work around those bugs by setting the surface's length.
This allows surface backgrounds and margins to work properly.

--

When the ListView is invisible or not in the DOM during construction,
envInfo fails to be calculated and we never retry. To fix this, envInfo is
now calculated during measuring. Also, envInfo should only be used after
measuring has succeeded.

--

During measuring in flexbox mode (as opposed to CSS grid),
groupheadercontainers and itemscontainers are sized to their parent rather
than their content. To fix this, the surface is given
align-items:flex-start during measuring.

--

A couple of HorizontalListTests relied on a race condition (ListView will
have rendered its items after a requestAnimationFrame). This was fixed by
waiting for loadingState=viewPortLoaded following a scroll. Afterwards,
the tests were too slow because they scrolled too many times. The tests
were sped up by picking a few key scroll positions to test against.