Small changes to noise.

Hello all. I've made some small changes to ```Noise```.
Here is a complete description of the changes:
* allow ```beam``` to be an astropy 2D Kernel - allows radio_beam to be optional
* changed ```scale_cube``` to be a property - avoids recomputing in multiple spots
* changed ```noise_cube``` to be a property - not sure if this one is necessary
* If there are no negative values in the cube (ie. from a sim), revert to using ```"STD"``` to calculate the scale.
* added a ```NaN``` check to ```mad```
* added additional args to ```spatial_smooth``` - fixes issues when calling from ```estimate_noise```

@akleroy & @low-sky, please let me know if some of the changes aren't appropriate for the package. Thanks!