feat(factories): add support for custom build in factories

Using the build block you can set a custom functions that will be used
to construct the instance. It receives the class and the constructor
arguments.
feat(factories): add support for factory mixin

A factory mixin is a definition block that can be shared accross
several factories using the `include` method.
The mixins are defined using the `factoryMixin` method.
docs(pages): add documentation on new factories features