Improved __.extend()

Setting the calling context of `__.extend()` using
`.call()` or `.apply()` with an object will now use
that object as the destination.

Fixed a bug that made the function a no-op when used
with `.call()` or `.apply()` by setting the context,
and providing only one object in the arguments.