Add additional spectrum-related plot and improve underlying structure

This set of patches has two main purposes.  First, to add additional frequency spectrum plot types.  This includes magnitude, phase, and angle spectrums.  It also adds magnitude, phase, and angle spectrums to the existing specgram function.

However, to accomplish this, improve the performance of the existing plots, and make testing easier, I have substantially refactored the underlying functions.  Both the plot types, the mlab functions they use, and the underlying functions those rely have all had their tests substantially increased.  They should now all have 100% or close to 100% coverage.

I have also made the documentation of both those functions and mlab as a whole bother more consistent and more complete.

I have also expanded the capabilities of a number of the other mlab functions, primarily the detrend and windowing functions.  These changes were made to help the spectrum-related functions, but can also be used independently of those functions.