py: Instead of having "debug on" var, have "optimization level" var.

This allows to have multiple "optimization" levels (CPython has two
(-OO removes docstrings), we can have more).
py: For optimization level -O3 and higher, remove lineno info from bytecode.
vm: If there's no lineno info, set lineno in traceback to 0, not 1.

To clearly signify that lineno is not known.
Merge pull request #649 from pfalcon/multi-opt

Support multiple bytecode optimisation levels