Choosing and using a bootloader for an ATMega32u4 board

I'm working on a simple device based on the ATMega32u4 and was hoping to use it to experiment with USB HID functionality, specifically keyboard, mouse and MIDI. I know that the new Leonardo's can do keyboard and mouse, but I hear they cannot do MIDI yet.

I see that the Teensy series have USB MIDI capabilities, but run on a different bootloader called the HalfKay. So I was wondering, what bootloader should I use if I want USB keyboard, mouse and MIDI ability, as well as the ability to reprogram the device with new sketches using the Arduino IDE.

So far I have heard about Leonardo, HalfKay, LUFA and CDC bootloaders, and maybe even the Arduino MIcro's bootloader, but I'm not sure which one is right for my application.