Ability to handle assertion definitions.

Assertion definitions are methods that can be called directly on a page
or activity definition. These methods assert some aspect of the page or
activity. Once the asserted aspect is verified, the asserted aspect is
stored as a variable on the definition class.

It is important to understand that the asserted state is defined on the
page or activity definition class, while any use of that state is
handled on an instance of the page or activity definition.
Ability to reference assertion aspects.

Allow an instance of a page or activity definition to call methods
that reference some aspect that was specified by the assertion
definitions.

This commit mainly makes sure that the included and extended
elements of Symbiont can communicate via definition instances.
Ability to use a driver library.

Allow a web driver library to be used as a platform for the execution
of various actions taken with a page or activity definition. Currently
the driver expected is that of watir-webdriver and the definition
actions rely on specifics of that library in order to perform tasks.