Refactor to make more maintainable.

- fix issue where the base/default placeholder images wheren't used
- add watermark info to cacheing hash directory name
- better upward compatibility by delegating to parent method