Add legendre notebook

Add legendre notebook to show how to use Legendre polynomials as basis
functions for the microstructure.
Add Legendre Basis

Address issue #75

Add Legendre Basis. Modify fit and predict methods in MKSRegressionModel to
handle the Legendre basis. Modify optimize_n_states in tools to evaluate
Legendre basis. Add draw_diff to tools.
Change file name from bases to basis

Address issue #75

Change file name for bases to basis.
Update basis documentation

Address issue #75

Update documentation with information on basis. Set argument deg equal to
n_states. Update notebook example.
Add Hermite Basis

Address issue #75

Add Hermite basis. Results are poor. Update draw_diff to remove title. Still
need to change color of difference plot. Update fit and predict methods in
MKSRegressionModel to handle Hermite polynomial. Need to verify math for
Hermite polynomials to understand source of error.
Fix typos in Cahn-Hilliard example

Address issue #75

Fix typos in text for Cahn-Hilliard notebook example.
Remove fastMKSRegression import
Modify code format to meet pylint code standards
Add draw_diff, update draw_concentrations, meet pylint code standards

Add draw_diff function to compare response fields from MKS models. Update
draw_concentrations to handle an arbitrary number of fields. Update code
to meet pylint code standards.
Move binning from MKSRegression to microstructureFunction

Address issue #75

Rename basis.py as microstructureFunction.py. Create MicrostructureFunction
class.  Move binning from MKSRegressionModel to MicrostructionFunction. Have
MKSRegressionModel inherit Microstructure function. Doing this allows for a
SpatialStatstics class to inherit the binning as well. Remove Hermite
polynomial code. This basis can be added later.
Add Cahn-Hilliard with Legendre basis example

Address issue #75

Add Cahn-Hilliard notebook example of a Legendre polynomial basis. The example
compares the polynomial basis with the primitive basis.
Update doctest for _Legendre_fft method

Address issue #75

Update doctest for _Legendre_fft method. The doctest was originally
made when the wrong axes were used for the fft.
Remove Hermite notebook

Address issue #75

Remove Hermite notebook. This basis can be implemented later.
Update text for cahn_hilliard examples

Address issue #75

Update text for the cahn_hilliard and cahn_hilliard_legendre examples.
Refactor microstructure basis functions to make OO.

Address #75

New basis classes with common interface. The MKSRegressionModel now
takes an instance of a basis class and then uses it to discretize the
microstructure property field.
Remove doctest hack as Sfepy verbosity is fixed

Remove `sfepy...` from doctests.
Fix API docs for new basis classes

Address #75

Fix API docs for new bases classes for consistency and HTML
rendering. Move some test to more sensible locations to document
better.
Update notebook examples and documentation

Address issue #75

Update elastic_2D, elastic_2D_Multiphase, elastic_3D, cahn_hilliard,
and cahn_hilliard_Legendre notes with new api.

Update tools with new api.
Basis classes require n_states and domain arguments

Address #75

Basis classes must provide n_states and domain arguments. It was a
mistake to ever allow inference of these values from the sample data.

 * Remove check for dimension in basis classes as it served no
   purpose.

 * The ContinuousIndicatorBasis can have a domain over any interval
   not just 0 to 1.

 * Cahn-Hilliard varies from -1 to 1 (not 0 to 1). This still needs to
   be fixed in the notebooks.

 * The notebooks haven't been updated to work yet, but the tests pass.
Pass n_states to optimize MKSRegressionModel

Address #75

Pass n_states parameter to MKSRegressionModel to enable use with
Scikit-learn's GridSearchCV for basis and n_states optimization. To
work with GridSearchCV the basis must be re-instantiated in fit.