Found a simple, elegant solution to the wav pool loading every item that
has ever been seen in the project(thus wasting memory), without
screwing up undo history when an undo/redo causes a file to be loaded that
may or may not still exist in the wav pool...

The wav pool now just represents key/value pairs of the paths/uids.  The
actual floating point data is not decoupled, but it's not loaded until the
item is actually seen in the project.  (this should never cause lag in
the UI, as the initial project load will still pull in everything being
used, and future loads will always be the expected result of a UI action).