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.
Tidied up long lines
Change ast::path into a struct.
Convert ast::def_id into a struct.
change ast::ty_param into a struct.
convert ast::foreign_item to a struct
convert ast::struct_dtor_ into a struct
convert ast::item into a struct
convert ast::struct_def to a struct
convert ast::struct_field_ into a struct
convert ast::attribute_ and ast::view_item to a struct
convert ast::pat_list_ident_ to a struct
convert ast::crate_ into a struct.
convert ast::blk_ into a struct
Convert ast::{pat,field_pat,local_,arm} into structs
convert ast::{field_,capture_item_,mt} and middle::ty::mt into structs
when test, just remove #[main] attr