Uses before and after to prepare the options

__DO NOT__ merge until https://github.com/aurajs/aura/pull/313 has been reviewed/merged/rejected.

This PR replaces https://github.com/hull/hull-js/pull/91/, the functionnality has been ported to Aura.