Support for reducible Markov chains

This commit makes a number of changes including adding support for
calculating stationary distributions on reducible Markov chains inline
with https://github.com/QuantEcon/QuantEcon.py/pull/79

*Use Graphs.jl to determine the irreducible subsets of a reducible
Markov Chain
*Changed DMarkov to MarkovChain in line with mc_tools.py
*Move to Distributions.jl for sampling
*Removed support for ``Matrix`` types: this is not really necessary,
but I think we should either pick matrices or MarkovChain types rather
than maintaining support for both.
rename with new constructor, remove deprecated tests
Update unit tests with a reducible mc chain
Import a couple extra things and using Grahs
Now preallocating with mc_sample_path
Merge branch 'master' of github.com:ZacCranko/QuantEcon.jl into markov
Merge pull request #21 from QuantEcon/markov

Markov changes from ZacCranko