A Survey of Cellular Automata: Types, Dynamics, Non-uniformity and Applications Preprint in arXiv (July 2016)