BUG: signal.welch: ensure floating point dtype regardless of input dtype

Fixes gh-3655.
Merge pull request #3657 from ewmoore/specint

BUG: signal.welch: ensure floating point dtype regardless of input dtype
BUG: Python 3 bytes types stored as '>c' in the same way python 2 did.

These two global attributes are now the same:

  'ran away' and b'ran away'

From ncdump -h

  :robin = "ran away" ;

Python 2 returns a string for ``_attributes['robin']`` and python3 returns
bytes.  So, python 3 users can deal with the encode()/decode() pain like any
other binary string.
ENH: support appending to netcdf files (mode='a')

Allows one to open an existing netcdf file for reading and writing.  This
patch includes the patch for global attributes of type bytes. As the netcdf
file can not be rewriten without bytes strings being dealt with in python 3.