Implemented support for `in` and `not in` operators.
Merge remote-tracking branch 'upstream/master' into containment

Conflicts:
	py/runtime.c
Merge remote-tracking branch 'upstream/master' into containment
Fixed the merge so it worked and compiled and stuff
Add combined image to GitHub front page README.md
added zip()
sorted
Added public domain implementations of strchr and strstr.
logo gradients in master SVG, png

Also new vector_log png with alpha
made DEBUG control CFLAGS in Makefiles oter than stm as well.
Initialize is_kw for dynamically allocated mp_obj_fun_native_t ojects.

This should fix issue #171
Merge pull request #172 from dhylands/init-kw

Initialize is_kw for dynamically allocated mp_obj_fun_native_t ojects.
Cleanup built-ins, and fix some compiler warnings/errors.
Merge pull request #168 from dhylands/add-strstr

Added public domain implementations of strchr and strstr.
Consolidate rt_make_function_[0123] to rt_make_function_n.
Cleaned up sorted() as per Damien's suggestions.
Made sorted() raise an exception instead of aborting when given no arguments; moved around some things in objfun.c as a consequence
Move mp_obj_int_t definition to objint.h, to reuse in long int impls.
mp_obj_equal(): Compare small and long ints properly.

By dispatching to long int methods.
Add "buffer management" and "shrink" API calls to vstr.

vstr is initially intended to deal with arbitrary-length strings. By
providing a bit lower-level API calls, it will be also useful to deal
with arbitrary-length I/O buffers (the difference from strings is that
buffers are filled from "outside", via I/O).

Another issue, especially aggravated by I/O buffer use, is alloc size
vs actual size length. If allocated 1Mb for buffer, but actually
read 1 byte, we don't want to keep rest of 1Mb be locked by this I/O
result, but rather return it to heap ASAP ("shrink" buffer before passing
it to qstr_from_str_take()).