is.object, is.plainObject, is.args

Thoroughly tested.

Ended up changing a lot more than I had expected when I started.