Category Theory of Automata