Replace assert(0) with a self-documenting TODO string
unix: Add setjmp-based GC register helper implementation.

As I suspected for a long time, for x86, register helper doesn't really make
any difference - there's simply not enough register to keep anything in
them for any prolonged time. Anything gets pushed on stack anyway. So, on
x86, uPy passed all tests even with empty reg helper. So, this setjmp
implementation goes as "untested".
Merge pull request #660 from Rosuav/assert0

Replace assert(0) with a self-documenting TODO string
Remove tests that fail under CPython 3.5

See http://bugs.python.org/issue19995 for rationale. As micropython currently
aims for Python 3.3 compatibility I have not changed behaviour, but this
change allows the test suite to be run against a newer Python without having
spurious failures.
objstr: Implement "%(key)s" % {} formatting for strings and dicts.

Also, make sure that args to "*" format specifiers are bounds-checked
properly and don't lead for segfaults in case of mismatch.
Merge pull request #663 from Rosuav/floatpercentx

Remove tests that fail under CPython 3.5
Change comments (mainly URLs) to no longer specifically say Python 3.3
py: Small changes to objstr.c, including a bug fix.

Some small fixed:

- Combine 'x' and 'X' cases in str format code.

- Remove trailing spaces from some lines.

- Make exception messages consistently begin with lower case (then
needed to change those in objarray and objtuple so the same
constant string data could be used).

- Fix bug with exception message having %c instead of %%c.
Merge pull request #665 from Rosuav/naming3.3

Change comments (mainly URLs) to no longer specifically say Python 3.3
py: Raise TypeError when trying to format non-int with %x,%o,%X.

This behaviour follows Python 3.5 standard (in 3.4 it's a
DeprecationWarning which we'd rather make a TypeError).