Add SpatialStatistics Class

Address issue #80

Add SpatialStatistics Class. The class is still not working properly. More
work will need dot be done.

Add microstructureGenerator to create data to use with the SpatialStatistics
class.

Minor changes to mksRegressionModel in documentation an format.
Update microstructure_generator

Address issue #80

Update microstructure_generator to handle (n_sanples, Nx, Ny, ...)
format. Still need to work on Gaussian blur.
Add Gaussian filter

Address issue #80

Add Gaussian filter. Remove reference code from previous function.
Add doctest for get_autocorrelation

Address issue #80

Add doctest for get_autocorrelation. Rename SpatialStatistics as
SpatialStatisticsModel. Crosscorrelation function still needs to
be complete.
Add crosscorrelation to SpatialStatisticsModel

Address issue #80

Add crosscorrelation method to SpatialStatisticsModel. Fix
normalization factor for both crosscorrelations and
autocorrelations. Fix bugs in get_microstructure function. Update
documentation for get_autocorrelations and get_crosscorrelations.
Edits to MicrostructureGenerator.
Convolution separated into Filter class

Address #80

The convolution is separated into a Filter class that can resize the
kernel and translate the kernel between real and Fourier space.
Create common Filter class for convolutions

Address #80

The Filter class deals with both convolutions with and resizing of
convolution kernel.

A new class, MicrostructureGenerator, generates microstructures using a
Gaussian filter to create random microstructures with a given number of
phases and a particular grain size.
Filter kernel always has a sample and bin index

Address #80

A filter kernel must always have a sample index and a state binning
index. This expresses the commonality between convolutions for MKS,
microstructure generation and spatial statistics.
MicrostructureGenerator returns an integer array

Address #80

The microstructure can only be in discrete states so should be an int.
Create Correlation filter.

Address #80

Removed SpatialStatisicsModel and moved the commonalities to the
Correlation class, a subclass of Filter. The new Correleation class
underlies both the autocorrelate and crosscorrelate functions in
stats.py.
Delete defunce SpatialStatisticsModel class

Address #80
Remove redundant crosscorrelate function.

Address #80
Fix autocorrelate function to return something

Address #80
New notebook for PCA analysis

Address #80
Use PCA on cross and auto correlations

Address issue #80

Use PCA to cluster crosscorrelations and autocorrelations. PCA on
different types of microstructures still needs work.
Add MKSKernelPCAModel and make_microstructure

Address issue #80

Add MKSKernelPCAModel. Model takes in a microtructures with dimensions of
(n_samples, Nx, Ny,...) computes spatial correlations and does kernel
principle analysis on the correlations.

Add make_microstructure to provide a convenient interface for
microstructureGenerator.

The microstructure generator is currently partitioning an equal number of
bins for what looks like a normal distribution. It should equally partition
the cumulative distribution. A MKSKeneralPCAModel example still needs to be
made.
Update model, methods, and functions to match python style guides

Address issue #80

Update model, methods, and functions to match python style guide except for
those that mimic those from sklearn.
Update examples with new python style guide API

Address issue #80

Update examples with new API from python style guide. Warning outputs need to
be handled before suppressed before documentation can be updated.
Update method and function naming convention

Address issue #80

Update method and function naming conventions to meet python style guidelines.