A trait that effectively gives us practical dynamic dispatch over anything
that impls Automaton, but without needing to add a bunch of bounds to
the core Automaton trait. Basically, we provide all of the marker traits
that our automatons have, in addition to Debug impls and requiring that
there is no borrowed data. Without these, the main AhoCorasick type would
not be able to meaningfully impl Debug or the marker traits without also
requiring that all impls of Automaton do so, which would be not great.
Returns an error if the start state configuration does not support the
desired search configuration. See the internal ‘AhoCorasick::start_kind’
field docs for more details.