Remove (disabled) debugging print.
Fix _initStack initial value.

It is supposed to be a single 2-tuple, not two items.
Fixes exceptions when an underflow happens.
Also, flatten nested tuple structure for simplicity.
This is not required since _global_trace accessed the stack already.

Move event_time computation a bit earlier.
Add verbose tracing.

No overhead when disabled (besides an 'if' in Profile.__init__...).
Tolerate missing attribute deletion when func is provided.
Sort output by - and display - file total time, by default.
Optimise for common case.

Most likely common case is 'line' event, so avoid:
- pop/append each time (peek/in-place change instead, and pop on 'return'
  event only)
- an unlikely "if" (catch exception instead)
Fill stack entry entirely on 'call' event.

Fixes incorrect call time when first function line is a function call.
Time could become negative in such cases when inner function took longer
to execute than outer function.
pprofile.py is excluded from output anyway.