For a TimedItem with infinte duration, the transformed time should should be equal to the directed time

Currently, in order to calculate the transformed time from the directed time,
we divide by the duration to get the time fraction, apply the timing function,
then multiply the result by the duration. This means that if the duration is
infinity, the transformed time is always zero, so the TimedItem's effect or
children will not play.

For a group, this behavior is probably unexpected. Consider the following
example ...

document.timeline.play(new ParGroup([
  new Animation(foo, bar, {iterations: Infinity, duration: 2}),
  new Animation(foo, bar, {iterations: Infinity, duration: 3}),
]));

A reasonable expectation is that both animations will repeat inefinitely, but
currently, neither will play. Note that in this example, the
'iterations: Infinity' can't easily be moved to the ParGroup because the
animations have different durations.

Instead, if the duration is infinity, we should set the transformed time to the
directed time. This means that the childrens' inherited times will progress as
expected, so they will play.

Note that the time fraction will remain zero, so an Animation with infinite
duration will still not play.
Upgrading chromedriver version.
Making setup script fail on error.
Fix the "xdg-desktop-menu: No writable system menu directory found." error.

See Chrome bug https://code.google.com/p/chromium/issues/detail?id=318548 for
more information.
Fixing "Failed to move to new PID namespace: Operation not permitted" being fatal error.

Travis uses OpenVC containers which are not compatible with the chrome sandbox
trying to move itself to it's own PID namespace. We instead use a custom chrome
sandbox which doesn't think this is a fatal issue.
Disabling the default apps, extensions and plugins for more reliable startup.
Making the fail error message more readable.

Old output
---------------------------------------------------------------------
borderRadius at index 0 failed undefined borderRadius
Value - ["calc",0,"px",2.5,"%"], Expected - [[0,"px"]]
Expected value "0,px" did not match
  Element 1 - assert_equals: expected "string" but got "number"
  Element 0 - assert_equals: expected "number" but got "string"
  Number of elements don't match
---------------------------------------------------------------------

New output
---------------------------------------------------------------------
Element div#borderRadius at index 0 failed
 Property borderBottomRightRadius
  Actual - ["calc",0,"px",2.5,"%"]
  Expectation [0,"px"] did not match
   Number of elements don't match
   Element 0 - assert_equals: expected "number" but got "string"
   Element 1 - assert_equals: expected "string" but got "number"
---------------------------------------------------------------------
Border Radius interpolation now works under Chrome.
Chrome now supports sub-pixel font sizes.
Merge pull request #503 from mithro/master

Fix Chrome installation issues on Travis and rebaseline tests with new browser behaviour.
Add support for animating the box-shadow property
Merge pull request #506 from alancutter/boxShadowSupport

Add support for animating the box-shadow property
pep8 fixes.
fixed
Merge pull request #508 from mikelawther/mychange

Fixed generation of start events for delayed animations
Merge pull request #507 from mithro/run-tests-lint-fixes

Bunch of lint fixes for run-tests.py
Create cache buster at test-runner level and pass it down.

This means that 100 unique copies of web-animation.js (and similar files) are
not loaded when running inside the test-runner (a big performance problem for
Android).
Merge pull request #511 from mithro/cache-buster

Create cache buster at test-runner level and pass it down.
Adding other saucelabs browsers as allowed failures.
Merge pull request #516 from mithro/allow_failure

Adding other saucelabs browsers as allowed failures.