Speed up Manifest#clean by reducing complexity

Change cleaning old compiled assets from using a O(n^2) to a O(n)
algorithm for finding old files to remove. This matters since there
can be thousands of assets.

When benchmarking in a project with about 6000 assets this patch improved runtime from 20 seconds to 0.04 seconds, a 500 times speed up.