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
Issue #2 Ensuring features are parsed before formatters are initialised
Fix for #668 - using Java reflection in ScalaDsl

The previous implementation was using Scala 2.9 reflection via
Manifest[T] to extract the function parameter types using the erasure
method (renamed to runtimeClass in Scala 2.10).

The problem with this approach is that Manifest.erasure provides the
runtime java.lang.reflect.Type, which means the type has been erased of
paramterized type info.

The ParameterInfo class relies on the ParamaterizedType information
to determine how to auto populate Step arguments of type
java.util.List<T>. When using java Lists from the Scala DSL, this logic
would fail.

As ParameterInfo's implementation is entirely based on the Java
reflection API, it makes more sense to use Java reflection in the
implementation of Scala DSL as it will be compatible with the logic in
core.

This change uses Java reflection on the Scala Function objects to
extract the ParameterizedType information, which also simplifies the
code.

The manifest is no longer used by the register method, but seems to
still be required on the function definitions by another part of the
code so these have been left in place.

The functionParams method has to filter out JVM bridge methods to ensure
the correct version of the apply() method (with type parameter
information) is captured.  Function objects only have one defined method
named apply() so taking the head of the list should always be safe.
Updating gen.scala to reflect changes in previous commit

Not sure if the code generation is still being used as the functions in
ScalaDsl seem to have diverged slightly from what this script would
generate in it's current form.

Updating it to reflect the new logic anyway in case it's still required.

Pushing this as a separate commit to allow cherry picking.
Add tagged Before/After hook support
Minor refactoring
Align snippets for quoted arguments with cucumber-ruby
Turn a DataTable with 2 columns into a Map
reproducing issue with skipped enum value
quick fix to table enum to null conversion issue by registering custom enum converter
custom enum converters do not fully support mixed case enum members when they start with lower case letter. Testing this case to avoid regression when switching to localized enum convertor.
introduced dynamic enum converter to create needed ConverterWithEnumFormat on the fly based on the type of expected/given object
OriginalFormat added to the enum formats to account for the edge case of mixed case enum member starting with lower case letter
minor refactoring: extracted commonalities between enum formats into AbstractEnumFormat
Simplify Table conversion. Fix broken build.

Squashed commit of the following:

commit 4c357d2fb77d48565985b83a5f5e0d6d1cf58daf
Author: Aslak Hellesøy <aslak.hellesoy@gmail.com>
Date:   Sat Mar 15 23:22:39 2014 +0000

    Simplify code by replacing DataTable.flatten with DataTable.asList(String.class)

commit 9c031dabe06813151609d5368f58d062384dc704
Author: Aslak Hellesøy <aslak.hellesoy@gmail.com>
Date:   Sat Mar 15 22:38:09 2014 +0000

    Added tests

commit a6c89feb369937149cd19b03737b1d3666b1ecd2
Author: Aslak Hellesøy <aslak.hellesoy@gmail.com>
Date:   Sat Mar 15 21:56:40 2014 +0000

    Simplify table conversion

commit 5896c7010ecb2aa67bb8bbc08d4047ac5bd4250a
Author: Aslak Hellesøy <aslak.hellesoy@gmail.com>
Date:   Sat Mar 15 21:32:27 2014 +0000

    Table conversion refactoring

commit c2f1d3ef2190b98c43222dcc37d9ce934ad43f3c
Author: Aslak Hellesøy <aslak.hellesoy@gmail.com>
Date:   Thu Mar 13 20:39:00 2014 +0000

    Simplify table conversion
Merge #684. Closes #684.
Merge branch 'master' of https://github.com/punkisdead/cucumber-jvm into punkisdead-master
Attribution. Closes #676