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 QuantEcon/QuantEcon.py#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](https://github.com/JuliaStats/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. If we wanted to stick with matrices, we could check for the validity of the stochastic matrix using a macro. 
It is somewhat conventional in Julia to put `using` statements in the root file for a module (so in our case the files QuantEcon.jl or Models.jl). I have followed this with the rest of the library.

I'm a bit undecided about the convention myself because I like to see what each file depends on (a pythonism habit, I'm sure).

We should discuss this and decide on a convention.