added "headers" to system test case groups.

The headers are for separating the test case groups from one
another. This can become useful when the tests are ran from the
terminal.
modified all the system tests to make them more reliable

The system tests were sometimes failing because the browser was
loading the next view too slowly. Furthermore, the tests that fail
if the tests fail vary from time to time. To help make the tests
more reliable, I have extended the WebDriver's element and
elements functions to include a wait for the element to appear first
before proceeding. This will accomodate for the times the browser is
slow.
removed unused lines of code when using the WebDriverWait class

I have remove the lines "$session = $this->session" from the
system tests because the $session variable is unused by the wait
function.
fixed invalid variable bug in system tests.