Adds shuffle product operation for NFAs. Creates an NFA that accepts interleavings of component languages. Seen this construction in some articles / other automata packages, so thought it was worth including for completeness.
Coverage remained the same at 100.0% when pulling 51b7a8727a292201770400ebac65c6e44f04f02a on eliotwrobson:shuffle_product into 36b48c8cd2bc4b97231a8d8a52dedaa25a26af33 on caleb531:develop.
Adds shuffle product operation for NFAs. Creates an NFA that accepts interleavings of component languages. Seen this construction in some articles / other automata packages, so thought it was worth including for completeness.