Implement functional options for Attacker

This change set applies the ideas presented by @davecheney during his [dotGo presentation](http://dotgo.sourcegraph.com/post/99643162983/dave-cheney-functional-options) which were originally proposed by Rob Pike [in his blog](http://commandcenter.blogspot.fr/2014/01/self-referential-functions-and-design.html).