Extend template configuration options (logger and merge_behavior)

Hi,

I have tweaked the module to allow the user of the module to provide alternate options to configure a different logger and/or merge_behavior.  These changes should not impact on existing users of the module (ie the default values are equivalent to what was hard coded before).

For those users who need to configure either option, they pass additional value(s) through during class configuration.

One point worth noting, if the user selects a logger or merge behavior which requires either a package or gem it is upto the user to manage the installation of that dependency.