Fix VDDReporter path stupidity.

In several places, VDDReporter blithely assumes the '/' character is used
to separate path components.  This is fine on Linux (and MacOS), but
rapidly breaks down on Windows.  Using only '/' is OK there, and using the
native separator '\' is also OK, but mixing the two is generally not.
This change fixes all of the instances of such breakage I could find.  It
also scratches the surface of cleaning up this program.  A more thorough
job could take quite some time and so many glaring sections in need are
left for the future.

Testing done:

Ran against an output directory of VDD.  Checked that all options still
work (even if --help prints nothing of use).
VDD test suite fixes.

This change makes the textfield VDD unit test work with IE.  A "feature"
of IE is that it will not accept invalid file paths in its file input
fields.  This test used a deliberately invalid path and so didn't work.
This has been fixed (assuming that autoexec.bat is always present).  Also,
the CSV library in use drops unescaped \ characters, causing more windows
path problems, and so the path in the test csv file has had its
backslashes escaped.

Testing done:

Ran the textfield VDD unit test.
Fix jscriptevent for IE.

The jscriptevent code assumed the existence of the javascript method
document.createEvent.  That method exists for Firefox and Chrome, but no
IE.  IE instead uses the somewhat different document.createEventObject.
This change updates the generated javascript code for jscriptevent to use
whichever method is present.

Testing done:

VDD unit test.
Fix file/path handling in suite files

This change fixes the largest area of path separator difficulties within
VDD: suite files.  Rather than passing strings around and manually
fiddling with '/' and '\' conversion, (almost) all files and paths are
converted to File objects and manipulation is done with those instead,
letting the Java lib handle all the details.  A goodly amount of cleanup
was done to SuiteParser as well.

The most major change, though, is the addition of a new gvar:
global.basedir.  Prior to this change, relative paths in suite files are
taken to be relative to whatever directory VDD started running in, rather
than the directory the suite file is in, which makes more intuitive sense.
To avoid mass breakage, this behavior is still the default.  However, if
the gvar "global.basedir" is set, it is used as the base directory for
relative paths in suite files.

Testing done:

Ran sugarinit.xml with and without global.basedir and with paths specified
with different combinations of '/' and '\' directory separators.
Work around a java.io.File "feature".

When creating a File object with both parent and child paths, the javadocs
state that, if the child is absolute, it will be resolved in a
system-dependent manner.  What this turns out to mean is that it will be
simply appended onto the end of parent.  Obviously, if the child path is
absolute, that won't work as expected.  This change works around that
problem by checking whether the child path is absolute and only appending
it to the parent path if it isn't.

Testing done:

Ran the problem case.
Plumb --haltOnFailure into Reporter

The one place in the code that is always run when an error occurs is
within the Reporter object.  So, to make --haltOnFailure actually halt on
failure, this change plumbs the option down into Reporter's routines for
error reporting.

Testing done:

Ran a test script with errors.  VDD terminated as expected.
Fix Z-order bug with input.clear()

This change works around Selenium issue 3402.  On IE, when a text field, a
password field, or a textarea gets cleared using WebElement.clear(), the
IE window is sent to the back of the Z-order.  This only happens the first
time clear() is called for any element.  Rather than wait for a bug fix,
this change uses a Javascript snippet on IE to clear the control.

Testing done:

Ran clear() on a text, password, and textarea element.  The window stayed
in the foreground.
Bug 54613: text should search all innerText

The text attribute had mapped directly to Selenium's By.linkText.  Since text
is allowed for many events besides link, this behavior is confusing and not
particularly useful.  This change expands searching by text so that all
HTML events can use it.  For link events, By.linkText is still used.  For all
others, the value is searched for within elements' innerText.

Testing done:

Ran the test script from the bug.
Bug 54159: Add required attribute to td

The td event was missing the required attribute.  This change adds it.

Testing done:

Ran a script with <td required="true"/>
Merge branch 'dev' into dev_v2

Conflicts:
	src/VooDooDriver.java
	src/org/sugarcrm/voodoodriver/EventLoop.java
	src/org/sugarcrm/voodoodriver/Test.java
	src/org/sugarcrm/voodoodriver/TestLoader.java
Missed a couple of lines in last merge.