Allow client applications to fetch icons in multiple sizes

This fully implements the new feature as specified in the 0.7.3 spec.
Before we only had basic support for the new icon-cache layout.