add create.Cell and delete.Cell js events

The events fire after the cell has been created or deleted.

closes #3154
adjust `import_pylab`

it's all or nothing now, not all or some.
Now `pylab_import_all=False` should mean that *no* symbols are added to the user namespace.

This also removes `figsize` from the pyplot namespace, which is weird and confusing.
add `%pylab --no-import`

allows override of the import_all option when the magic is called
warn about names clobbered by `%pylab`
don't double-decorate in `flag_calls`
update pylab_import_all help string
add `%matplotlib` and `shell.enable_matplotlib`

Now `%matplotlib` / `enable_matplotlib` do the bulk of the work. `%pylab` / `enable_pylab` just add namespace population on top of that.

Related changes:

- remove `pylabtools.activate_pylab`
- shorten backend message to just `using matplotlib backend: <backend>`
- only show backend message when magics are called with `auto`,
  never from Python methods or when backend is explicit.
- pylab clobber warning is only displayed in the magic, not the Python method.
update pylabtools tests
refocus active cell on dialog close

if there is one

Otherwise, the cursor is lost on kernel restart, etc.
fix some failing test
include sorted list of backends
Merge pull request #2 from ivanov/pylab-no-import

fix 2 failing tests and add programmatic support for backend
update enable_pylab, etc. for inprocess kernel
test that cell magic preempts other transformers
push cell magic to the head of the transformer line

I'm not 100% sure this is the right fix (ping @takluyver for review),
since it is unclear what the physical/logical distinction is,

but this does allow the cell magic transform to preempt all other transforms.

closes #3604
don't close string from inside re.VERBOSE comment

some highlighters get confused :(
don't allow cell magics mid-cell
move cell magic after prompt transformers
update cell magic transform test
show UsageError for cell magics mid-cell