Remove unnecessary use of invoke_primitive
Don't mark functions that allocate and could result in GC as read only

These can have side effects if they cause an actual GC because of memory
pressure. In that case it can also for example modify stack addresses
because objects are forwarded. LLVM shouldn't remove those cases.

The proper way to handle this would be to first do escape analysis and
if it doesn't escape, we could switch to stack allocation. That stack
allocation can then properly be seen as having no side effects.
Make debugging easier for Baker GC space

This makes two changes to make some debugging easier. First it marks a
certain as off limits so Valgrind can find errors if objects are used
that still refer to this old space.

The other is that we can easily set a flag to fill the unused space with
all 1's so any usage will very likely result in a segfault and makes
problems appear sooner rather than later.