Added a simple FSM implementation. Uses function that accepts FSM as well as input string and start symbol, allowing multiple calls to be made at different points in the string. Will need to figure out how CUDA handles memory sharing as the FSM itself could be large. At least a start though.