Add unit tests for archives and audio shortcodes, and some fixes.

Is it reasonable to modify the audio_shortcode function in this way to remove the dependency on the global $post? It'll be easier to write unit tests without spoofing a post in the unit test setup.