cortex-m3-qemu: a working port
cortex-m3-qemu: refactor the port.

Switch from CodeSourcery to ARM GCC and clean-up some stale files,
also copy `main.c` and `mpconfigport.h` from bare-arm.
qemu-arm: more generic port name.
qemu-arm: update makefile (d553be5).
travis: should test building qemu-arm as well.
py, vm: Free heap-allocated state if it was allocated on the heap.
py, vm: Fix recent bug where state is freed too early.
Merge pull request #515 from errordeveloper/qemu

Qemu
py, gc: Fix old gc_realloc for case when NULL is passed in as ptr.
py: Support instance __call__ method.
py, gc: Zero out newly allocated blocks in the GC.

Also add some more debugging output to gc_dump_alloc_table().

Now that newly allocated heap is always zero'd, maybe we just make this
a policy for the uPy API to keep it simple (ie any new implementation of
memory allocation must zero all allocations).  This follows the D
language philosophy.

Before this patch, a previously used memory block which had pointers in
it may still retain those pointers if the new user of that block does
not actually use the entire block.  Eg, if I want 5 blocks worth of
heap, I actually get 8 (round up to nearest 4).  Then I never use the
last 3, so they keep their old values, which may be pointers pointing to
the heap, hence preventing GC.

In rare (or maybe not that rare) cases, this leads to long, unintentional
"linked lists" within the GC'd heap, filling it up completely.  It's
pretty rare, because you have to reuse exactly that memory which is part
of this "linked list", and reuse it in just the right way.

This should fix issue #522, and might have something to do with
issue #510.
Merge branch 'master' of github.com:micropython/micropython
py: Add MICROPY_ENABLE_DOC_STRING, disabled by default.

Also add a few STATIC's to some compile functions that should have them.

Addresses issue #521.
streams: Make .write() support arbitrary objects with buffer interface.

This in particular fixes writing str vs bytes.
modsocket: Make .send() support arbitrary objects with buffer interface.

This is CPython-compliant (except that CPython doesn't support buffer
protocol for str).
objstr: Implement .lstrip() & .rstrip().

Share code with .strip(). TODO: optimize .rstrip().
objstr: Optimize .rstrip() by scanning string from end.
py: Make collections module configurable, enabled by default.
bare-arm: Disable more stuff to reduce binary size.
Merge branch 'master' of github.com:micropython/micropython