Fixing ConcurrentModificationException when running cucumber tests in parallel
Fixed compilation
fixed the ConcurrentModificationException in LocalizedXStream
fixed broken test
Added support for SVG images in HTML output
Transformer annotation enhancement - now it can be use to annotate other annotations
Format and delimiter annotations enhancement - same as for Transformer
Add hookpoints in Cucumber and GuiceFactory

Use case: Create a subclass of Cucumber that creates a subclass of
GuiceFactory that creates an injector that has the injector of the
application being tested as its parent.
That way:
* The application stays in control of its own lifecycle (it can create its
   own injector), but steps are still scoped by scenario.
* Step classes can get injected by dependencies from the application
* The application's injector can be created once and shared between
   multiple scenarios to improve performance
Fixed bug where -getSnippet in clj.clj received only the step parameter.

cucumber.runtime.UndefinedStepsTracker actually calls the Backend
instances with 2 parameters--Step and FunctionNameGenerator--but
Clojure's Backend implementation only accepts one.

Instead of testing generation of Clojure Snippet with a test-only
ClojureSnippet instance, ClojureSnippetTest now tests the real
implementation in clj.clj.
Issue #2 Ensuring features are parsed before formatters are initialised
Add default feature path, default glue and default formatter once

The RuntimeOptionsFactory should add default feature path, default glue
paht and default formatter once, not once per inheritance level.
Remove the unique glue work around from TestNGCucumberRunner
Add fireTestStarted/Finished for undefined/pending steps in strict mode

The JUnitReporter should for each call to Result either call
fireTestIgnored, or call fireTestStarted and fireTestFinished on the
step notifier. In strict mode undefined and pending steps should be
treated as failed steps, so fireTestStarted and fireTestFinished should
be called on the step notifier.
Correct error message on XStreams failure due repeated column. fixes #657
more precise detection of the "null to primitive assignment" XStream error.
wrapping unrecognized XStream ConversionException in CucumberException
Correct JUnit notification for background steps

The background steps are copied in the ExecutionUnitRunner for each
scenario in a feature with background. This is done to make them unique
for each scenario, so that the JUnit notification later will not be
ambiguous. When the background steps are executed, it is the original
ones that are executed. Therefore the background steps need to be
'converted' from the original steps to the copies made earlier, when
performing the actual JUnit notifications for an execution unit
(scenario).
Merge #658. Update History.md.
Merge #650. Update History.md

Also remove obsolete comment from the Clojure backend.
use slashes to quote regexes so that backslashes don't have to be
escaped