ATN deserializer

* Extract the ATN deserialization process to its own class
* Add `ATNDeserializationOptions` class to allow customization of the deserialization process
* Implement the "generate rule bypass transitions" option to support pattern matching with placeholders