Mapping bash, sh, and shell to Generic script type

plus specs!

Closes travis-ci/travis-ci#2856
Closes travis-ci/travis-ci#1201
I agree wrt positive tests.  This felt gross.  As for `cpp`, I don't consider it to be true overlap as the known languages test hits a different case.  nbd eh?