test(gen): make tests more strict and DRY

Changes:
- `genFiles(ops)` creates an array of expected files based on options given
- test for generated files on every set of tests
- test for unexpected files
- use testExec to be more DRY

Exposes a bug with `client/components/socket`:
`socket.service.js` and `socket.mock.js` are not filtered.
See #530