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
add InteractiveShell.show_usage_error

for showing UsageError,
rather than explicitly calling `showtraceback()`
to render an exception that wants no traceback.
rollback UsageError for cell magic mid-cell

regular SyntaxError is raised
test that cell-magics are not transformed mid-cell
Merge pull request #3606 from minrk/cellmagictransform

push cell magic to the head of the transformer line