Changed bc calculation to be more modular

I packaged up the calculation of a polynomial into its own function, so
that the code contained in calc_bolometric_polynomial is cleaner.
Updating docstrings, just to be pedantic

Updating docstrings of some of my simpler functions like
calculate_polynomial_term and calculate_polynomial
New method of polynomial calculation now tested

Added unit tests for the calc_polynomial function. I'm probably
over-testing the code, but I can pick and choose which ones to keep
later.
Reformatted docstrings to match Google standards

Because having a style is better than making things up as you go.
Cleaning up docstrings and whitespace
More tidying up whitespace and docstrings
Changed the way bad BC corrections are returned

In the original code, I was returning None for values of the color which
were outside the range of validity of my polynomial fits.

This is an awkward thing to return, and in practice it's not easy to
handle the output of the code when it will occasinally return None.

So instead, I've changed the error return value to be -999.
In practice, this is not a possible bolometric luminosity for a
supernova, so there is no possibility of mistaking this for good output,
and it avoids the potential pitfalls of having to return None.
Merge branch 'refactor' into develop