First pass at a general cellular automata engine