Analytic functions with blackbody

See #3077 
My personal goal is to mimic `pysynphot` behavior (https://pypi.python.org/pypi/pysynphot), if possible. In this case, it does not raise an error. But that does not mean it cannot do so in `astropy` if the general consensus is to raise an error. What if `modeling` calls this? @astrofrog ? @embray ?

>>> import pysynphot as S
>>> import numpy as np
>>> bb = S.BlackBody(5000)
>>> bb(np.array([-1]))  # negative wavelength
.../pysynphot/planck.py:36: RuntimeWarning: divide by zero encountered in true_divide
  factor = N.where(mask1 == 0, 2.0 / (x * (x + 2.0)), factor)
.../pysynphot/planck.py:40: RuntimeWarning: divide by zero encountered in true_divide
  factor = N.where(mask == 1, 1.0 / (N.exp(x) - 1.0), factor)
.../pysynphot/planck.py:43: RuntimeWarning: invalid value encountered in multiply
  x = factor * x * x * x
array([ nan])