Add some structure-related functions

This patch set contains a first cut at a few Mathematica functions:

- `Depth`, `Operate` and `Through`
- `Complement`
- `IntegerDigits`
 - I needed this to run one of the examples for `Complement` in the Mathematica docs
- `Variables`
 - This isn't really complete because I realised that it had a slightly fiddly definition. It's not quite right, and it's easy to just drop this one for now if that'd be better.

I'd be grateful for any comments if there's anything here that's not quite right. Thanks!