Enhance auto_encode to take number of struct fields

emit_struct and read_struct takes an additional len:uint parameter which tells
us how many fields the struct we are working on has.

This is required to implement an Encoder for the msgpack [1] serialization
format. To serialize a struct with msgpack you have to use arrays and the size
of the array has to be know before each of the elements are written out. JSON
as an example doesn't have this problem as it uses '[' and ']' delimiters for
arrays.

[1]: www.msgpack.org
doc: Fold information from the memory model interlude in the tutorial elsewhere
Fix incorrect error messages in the time library
Fix errors in how parsed time values were used

%u flag takes a value in the range of 1-7. However value needs to be
stored in tm.tm_wday between 0 and 6.
%y takes a two-digit year value. Subtracting 1900_i32 from it is not
needed.
Add range checking in the time library

This was requested in Issue #2350. New function match_digits_in_range
added and used instead of match_digits wherever needed.
Update libuv for Android
Support ARM and Android

Conflicts:
	src/libcore/os.rs
	src/librustc/back/link.rs
	src/librustc/driver/driver.rs
	src/librustc/metadata/loader.rs
	src/librustc/middle/trans/base.rs
More android support
Conflicts:
	Makefile.in
	cmakeFiles/rustllvm.cmake
Add FIXME's for #4404. Android JNI hacks
Win32 build fix
Reflect on char as u32, not uint (which may be u64).

Fixes mozilla/rust#4473.
Tidied up long lines
Add a test for vec::retain
Use vec::truncate for vec::retain
spelling fixes for iter module docstrings
Merge pull request #4486 from thestinger/spelling

spelling fixes for iter module docstrings
Merge remote-tracking branch 'mneumann/f-serialize'
Add cfg attrs to handle auto_encode transition
Add Kyeongwoon Lee to AUTHORS
Merge pull request #4477 from jld/char-repr

Reflect on char as u32, not uint (which may be u64).