Currently accessing files in a subdirectory of the share dir (e.g. /share/spice/currency/assets) does not work. This solves that problem. This fix incurs a small performance cost thoguh because we now step through the list of all accessible share dirs in order to see if the request path maps to an existing share dir. This is because the use of subdirs makes it harder to determine the Package name from the request file path. For example how can we tell if /share/spice/currency/assets is DDG::Spice::Currency::Assets or a subdir of the Spice::Currency share dir? The _share_dir_hash exists to provide the paths of all share dirs derived from package names which gives us a way to determine the IA Package from the request path. An alternate approach is to slowly remove elements from the request path until we find one which exists in our _share_dir_hash, but we already iterate over the _path_hash so this follows convention.
…avascript race condition is fixed.
…ndlebars files as they are loaded every time.