added Builder Method FieldDef#template(TemplateValue)
Merge branch 'master' into template-values
All Template Values are provided by TemplateValues

Previously the TemplateValue concept was more or less
hidden in the internal packages. But as a matter of fact
it is a crucial part of Daleq's Table Definitions.

Hence it should be directly accessible by the client.

* TemplateValues as a factory of TemplateValues
* Applied flyweight to TemplateValues
* Use TemplateValues to get templates
* Moved TemplateValues and all implementations to core package.
  Only TemplateValues is public visible.
* Added EnumeratingTemplateValue
* Refactored TemplateValue:

Previously TemplateValue returned String which was already the
representation how the value was provided to DbUnit. But RowBuilder
did two things: Either it got a set field, than the field was
converted via the TypeConvesion to a String, otherwise the respective
TemplateValue was used which already rendered a String. Each
TemplateValue had to know how to convert a particular type to the
String representation. This somehow violates DRY.

We have changed this now. TemplateValue does not "render" anymore,
but only maps the row id to a particular type. Then RowBuilder pipes
this type through the TypeConversion which knows how to marshal these
types.

We changed all implemenations of TemplateValue not to return a String
anymore but rather the type, it wants to provide. Previously all
Integer DataTypes were mapped with a StringTemplateValue, which could
only be explained with some legacy ideas how daleq was original
intended to work. This did not made sense anymore, hence now they are
handled by the ModuloTemplateValue, which is more or less just a
BigInteger TemplateValue with a safe upper limit.