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.
Not worth fixing, but we normally leave `(int)` as just that -- spaces outside, not inside.