Simplified `CallContainer` hierarchy.

Instead of testing for subclasses of `CallContainer` (e.g.,
`HistCallContainer'), we can just test for `CallContainer` and check
the `CallContainer.call_func` (e.g., container.call_func==Axes.hist).

This way, the `CallContainer` functionality maybe added more easily
to future `Axes` methods.
Removed `keep_call` from Axes.* call signatures.

It's not scalable to add new defaulted keyword arguments to call signatures for added features like the `CallContainer`.

This wasn't done earlier because the `update` function required some
knowledge of the `keep_call` kwarg. We may add this later, but to be
more encapsulated for now, we *immediately* `pop` the `keep_call`
kwarg into a local variable so that it doesn't unintentionally get passed other places.
No longer send `**kwargs` to `Container.__init__`.

Looks like `Container.__new__()` is OK with **kwargs coming through,
but `Container.__init__()` only expects one possible keyword
argument, `label`.

It would be more ideal to allow __init__() to accept `**kwargs`, but in case there's a good reason for it *not* to, we can wait on that.