Add OO.ui.Error

Changes:
* New class, to be used in the future as a way to pass error information
  through promises

Change-Id: I0558195e219b6702f7a3d4e3b59302dd92e30797
[BREAKING CHANGE] Change how delay works for OO.ui.Process

Changes:
* Share the implementation between next() and first() using createStep()
* Make constructor use the same arguments as next() and first(), also
  using createStep()
* Support delay by passing a number into next(), first() or the
  constructor
* Support delay by returning a number in a step function
* Add more documentation
* Add more tests

Breaking changes:
* OO.ui.Process.static.delay is gone, but you don't need it anymore, just
  create a process with a number as the step argument in the constructor,
  or add a step with a number as the step argument to next() or first()

Change-Id: I04a6c186ce9ac1cf4eaf2750865934276b5c7787