Grammatically accept an arbitrary Shell script

This pull request introduces a conflicts-free version of complete Shell program grammar instead of that reverted by pull request #30. The new main `script` grammar rule accepts zero or more commands, unlike the originally main `complete_command` grammar rule that accepts exactly one command. This change is necessary to proceed with the issue #17 regarding implementation of token recognition.