Basic subfolder support for layer assets

This pull request adds basic subfolders support for layer assets, as well as some simple-minded factoring of the existing code into individual modules to make it somewhat easier to understand the plugin's structure and dependencies.

With this pull request, individual layer name components can now optionally include subfolders, e.g.:

1. `foo/bar/bar.png`; and
2. `50% lo-res/bar.png + hi-res/bar.png`.

As indicated in the first example above, subfolders of arbitrary depth can be specified. Features that this pull request does *not* provide include:

1. Tagging layer groups with folder names, so that assets generated from included layers are placed in the specified folders; 
2. Absolute paths or paths that include the special ".." or "." directory names;
2. Specifying scale within a subfolder (e.g., `hi-res/200% foo.bar`); or
3. Anything involving layer comps.

Partially addresses #159 and #184.