There is no single library that will do all this that I'm aware of, although possibly JUCE or BASS has added these features, so you should check those out in addition to my suggestions below.
Aubio is probably your best bet for bpm detection. The most popular open-source library for modifying pitch and tempo independently is probably SoundTouch, but if you need something high quality, you are probably going to want to license something commercial.
The last two requirements are trivial. Noone supplies libraries to do these kinds of tasks beyond reading and writing the audio data from files. For that purpose, look at libsndfile, lame and ffmpeg.