Added functionality for using windows in periodogram functions.

Hi, 

Here is a initial pull request that adds some functionality for using windows in the periodogram functions. It is an initial PR to start a discussion on this topic and on the implementation. No tests and additional documentation have been added yet.

The way we should provide the window functionality is based on passing a function to welch_pgram and bartlett_pgram that accepts a single integer argument and return the window values in an array of that length. This array will be multiplied by the data when the call to periodogram is done.

I am not yet satisfied with the approach of passing an array of ones in the case no function argument is provided, as it was done for the spectrogram function and which I copied from.

Lets us discuss here how to best implement this functionality and I will modify the code as need for the final merge.

Regards, 

Davide

For this default case, the function n->one(eltype(s)) return a single scalar value of 1 and not an array of ones. This avoid the allocation. It leaves the multiplication for 1, though, but I think the total time spent in the function will be probably dominated by the fft, and not by this multiplication. However, it might lead to a cleaner interface to have two variants of the function, at the cost of some duplication.