Ensure those two pointers are rooted.
Root a forgotten tuple
fix #8807, regression in constructors when evaluating field types

this changes `fieldtype` to accept a type as the first argument, instead
of an instance. this allows us to use it to `convert` the arguments to
`new` to the field types, instead of evaluating the field type
expressions. this is more general (e.g. in case the mapping from
field type expressions to final field types becomes more complex).
also makes `fieldtype` more similar to `fieldoffsets`.
Update .gitignore
make Char no longer a subtype of Integer

Char now supports a limited set of "integer like" behavior.

* comparisons with integers
* Char - Char = Int
* Char + Int = Char

update docs and add a NEWS.md entry
Merge pull request #8819 from JuliaLang/ob/membug

Fix two memory errors
Merge pull request #8816 from JuliaLang/jcb/char_not_integer

Make Char no longer a subtype of Integer
ARM: use 8-byte alignment (fixes #8314)
fix compiler warning
Update mathematical-operations.rst

I added a note that the updating-operators can change the type.  This is implicit in the current manual, but it nonetheless threw me for a loop the first time it happened to me (this is different, e.g., from C++), so I thought it should be made explicit.
Simplify wording and rework example as doctest
Fix typo in NEWS.md and update links.