find function replaces elements in state callback

Elements object was used for two purposes:
- specify the elements to take screenshot of
- specify the elements to act on.

In practice, this two sets almost never were identical,
so it makes sense to split them up.

As a first step, find function is introduced, which must
be used to find an elements to act on.

Also, all action now can receive selectors directly.
captureElements replaces static/dynamic elements

setElements and setDynamicElements was used to specify both
active elements and elements to take screenshot of. Now, when
`find` is used for active elements, they should be removed.

`setCaptureElements` is a replacement. It accepts a list of selectors.
 If element was not found, error will be throw. Users should use
 different suites for different sets of capture selectors.
Add `before` hook to the suite.

This function is executed before any of the states. Context
is shared between before hook and all of states hooks.
Primary intents of introducing it is:
- cache some elements to use in states callback without multiple
  `find` calls.
- perform some actions before first states without taking
screenshot.
Add info about new API to changelog
Update documentation on a new API
Merge new elements API

Elements to take screenshot of and elements to act on
are now defined differently: `setCaptureElements` for the
first case and `find` function for the rest.

This makes API more flexible and logical and allows some tests
to run faster because of the smaller set of captured elements.

`before` hook is added to allow to cache the result of `find`
for all suite.