Cache modules across installed packages

Closes #168 
Closes #169