Replacement for functools.wraps that preserves signature

Motivated by [this comment](https://github.com/astropy/astropy/pull/2835#issuecomment-51595071) I added the `make_func_with_sig` function to `astropy.utils.misc`.  This enabled me to also write a replacement for `functools.wraps` that copies the wrapped function's argument signature.  Turns out there aren't yet as many places where this is useful as I thought there might be.  But it could be useful in the future.