ImageCache fix for when searchpath is changed.

If textures aren't found in the searchpath (thus making "broken" records
for those files), then the searchpath is changed to include the directory
where they really were stored, the filenames were never updated.

The solution is to make invalidate() clear the searchpath-augmented
filename so that any altered searchpath is re-applied next time the file
is re-opened.
RLA fix -- the recent RLA bug fix introduced an edge case where no
special bps was requested, and there weren't per-channel formats, in
that case it was incorrect accessing spec.channelformats[0] when it
should have used spec.format.