unix: Use standard return codes for main

As in the CPython manual: "Unix programs generally use 2 for
command line syntax errors and 1 for all other kind of errors"
modstruct: Implement count specifier for strings (e.g. "100s").

Infra for counts of other types is there, need last mile to be implemented.
unix: Fix linker errors when time/ffi modules are disabled

When disabling these via mpconfigport.mk or on the commandline,
the correspoding build options are not set and the sources are not
built so the modules should not be added to the
MICROPY_EXTRA_BUILTIN_MODULES list since they are undefined.
py: Rename BYTE_CODE to BYTECODE (this was missed in previous rename).
py: Add support for __debug__ constant.

__debug__ now resolves to True or False.  Its value needs to be set by
mp_set_debug().

TODO: call mp_set_debug in unix/ port.

TODO: optimise away "if False:" statements in compiler.
py: Remove emit_glue init and deinit.  Needed only for debugging.

Debugging output for emit_glue now simplified so that the init and
deinit functions are no longer needed.
unix: Implement -O option to turn off __debug__ flag.
py: Fix bug in mpz_and function.

Addresses issue #610.
tests/int-long.py: Try to expose issue with recent "&" optimization.
py, unix: Add copyright for modules I worked closely on.
Merge pull request #613 from pfalcon/pauls-copyr

py, unix: Add copyright for modules I worked closely on.
Merge pull request #600 from stinos/unix-exitcode

unix: Use standard return codes for main
py: Improve mpz_and function.

This should now have correct (and optimal) behaviour.
objstr.c: Partial implementation of .rsplit().

sep=None is TODO.