Merge pull request #22 from idrarig/lazy-loaddir

Loading a directory loads files only when they are required
Switch to enable async factory functions returning promises