Track changes to options more deeply

Traverses array members looking for changes
@shadyvb Oh I get it now. `$deep--` is the opposite of `$deep++`, makes sense I've just never seen it before so it almost seemed like a typo! Thanks for explaining.