Be smarter about Madul checking, add support for dep alias and initer
Be smarter about Madul checking, add support for dep alias and initer

Instead of just checking whether a required module is a function, search
the prototype chain to see if any constructors are of type `Madul`.

Add support for dependency aliasing and dependency initializers. Aliases allow
for nicer names of hydrated dependencies, and initilialzers provide an easy way
to hook madul initializer methods up to dependency configuration/initialization.

bsgbryan/madul