Feature add a builder for interface

Hello,

I like your design of the fluent builders. Though a builder for interfaces would be nice.

I try to closely following your formatting and coding conventions. If something is wrong, don't hesitate to criticize.

You can find in this PR : 
 * a builder for interface
 * a test for the builder for interface
 * adding a new method "interface" in the BuilderFactory
 * a test for the new method

Hope this helps :beer: 

PS: one other thing I forgot : 

There is some copy-paste between class builder and interface builder but I don't think we can factorize both builders. It reminds me the circle-ellipse problem.