Added some magic sauce to `partial`

I find partial application from the left or right isn't enough
to cover all cases, and puts a bit of an unfair burden on
function definitions to consider such applications. So I added
a think to `partial` where if you set one of the arguments of
a partial application to be the `partial` function itself,
that acts as a signal to `partial` to say that the specific
argument hasn't been supplied yet, and should come later when
applying the function.

Is-a very nice.
Fix `get` tests
Re-added missing `assert`
Fixed `extend` after changes to `describe`

Not too happy about this...