Use class constructor in Rule.gen

This commit modifies Rule.gen macro to use class constructor and not the
`apply` method. Therefore, now Rule.gen supports vanilla classes (provided
the constructor has exactly one parameter group) and classes with any
number of overloaded `apply` methods. It also falls back to the (single)
`apply` method in companion, so that traits can be used (see tests).
Merge pull request #4 from stanch/topic/dont-publish-root

Don't publish root project
Merge pull request #2 from stanch/topic/gen-using-constructor

Use class constructor in Rule.gen
Merge branch 'master' into topic/json-serialization