Byte compile warnings

Okay, these new commits might seem strange, because I'm trying to maintain backward compatibility while suppressing warnings about obsolete functions/vars. My idea is that at a later date we can go back and remove these obsolete macro calls when we decide to to no longer support versions earlier than the `when` passed to these macros.

@magnars, please let me know what you think.