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

There is a type inference issue here and above, which will not affect this code much, but may affect code that calls it. `window` is a function-valued argument, which means Julia doesn't know the return type of `window(x::Int)`, which means Julia won't know the return type of `welch_pgram` for given input types. This can incur a significant performance penalty if you e.g. loop over the output of the function. At present I believe all of our windows return Float64s, so you can get around this with a typeassert:

```julia
w = window(length(sig_split[1]))::Vector{Float64}
```

Another option would be to have windows be types instead of functions that return arrays. Then type inference would "just work." This might not be worth it unless we have other methods we'd want to call on them.