Draft approach towards resolving https://github.com/micropython/micropython/issues/560#issuecomment-42213955
Merge branch 'keep-strings-uninterned' of github.com:pfalcon/micropython into pfalcon-keep-strings-uninterned

Conflicts:
	py/parse.c
py: Don't automatically intern strings in parser.

This completes non-automatic interning of strings in the parser, so that
doc strings don't take up RAM.  It complicates the parser and compiler,
and bloats stmhal by about 300 bytes.  It's complicated because now
there are 2 kinds of parse-nodes that can be strings: interned leaves
and non-interned structs.
Merge branch 'pfalcon-keep-strings-uninterned'
Change const byte* to const char* where sensible.

This removes need for some casts (at least, more than it adds need
for new casts!).
py: Slightly improve efficiency of mp_obj_new_str; rename str_new.

Reorder interning logic in mp_obj_new_str, to be more efficient.

str_new is globally accessible, so should be prefixed with mp_obj_.
py, vm: Where possible, make variables local to each opcode.

This helps the compiler do its optimisation, makes it clear which
variables are local per opcode and which global, and makes it consistent
when extra variables are needed in an opcode (in addition to old obj1,
obj2 pair, for example).

Could also make unum local, but that's for another time.
tests: Add small testcase for 3-arg slices.
modos: stat(): Accept bytes argument.
Fix DEBUG=1 builds

Without this fix, I get the following error:

CC gccollect.c
gccollect.c: In function ‘gc_helper_get_regs’:
gccollect.c:63:1: error: bp cannot be used in asm here
windows: Complete rename of MICROPY_PATH_MAX to MICROPY_ALLOC_PATH_MAX (58ebde4)
Merge pull request #629 from dhylands/fix-unix-debug

Fix unix DEBUG=1 builds
Merge pull request #631 from stinos/fix-win-def

windows: Complete rename of MICROPY_PATH_MAX to MICROPY_ALLOC_PATH_MAX (...
Revert "Fix DEBUG=1 builds"

This reverts commit 6e76f7bc90fcd130db888f8804b8555dc8f3a484.

This patch tries to workaround a previous clang workaround. Instead of going
into workaround of workaround spiral, the original workaround should be tamed.
unix/gccollect.c: Make Clang workaround apply only to it. Unbreaks gcc builds.
py: Implement long int parsing in int(...).

Addresses issue #627.
py: Make int(<longint>) work by just returning the longint.
py: Fix check of small-int overflow when parsing ints.

Also unifies use of SMALL_INT_FITS macro across parser and runtime.
msvc: Only update generated headers when there are changes

This fixes generating the headers casuing complete rebuilds,
even when the headere's content didn't really change.
py: Implement bignum '&' with negatives on lhs and rhs.

Needs proper coverage testing.  Doesn't implement -ve & -ve.
Addresses issue #611.