test-lessons.sh: Slot in a custom, per-workshop shell lesson

Continuing development after #3.  See the commit messages for details.

With this change, we have examples of both transitive (recursive)
dependencies (swc-workshop → git-lesson → shell-lesson) and effective
virtuals (swapping my-shell in for shell as the shell-lesson
supplier).  I think the only outstanding issue with Bower is multiple
endpoints for `bower search` [1].

[1]: https://github.com/twitwi/lesson-manager/issues/2#issuecomment-49525190