Building Taskable Reinforcement Learning Agents via Formal Languages and Automata