Tweak GenerateAction methods to take a const char* and copy it

now that it copies the string itself we can eliminate a lot of duplicated code.
GameScript: make inheritable Canary class