relix:  Declare os_thread API functions
[NEW] MacRelixLib:  Implement os_thread API calls
Genie:  Refactor Process to use os_thread API
plus:  Add intrusive_ptr_ref_count() friend member

Sadly, boost::intrusive_ptr doesn't actually use this to provide a count
member function, but we need access to the reference count for vm shares
(and OS threads) one way or another.
relix:  Add os_thread_box class interface
MacRelixLib:  Define os_thread_box class
Genie:  Factor thread_start() out of ThreadEntry()

This makes it possible to remove 'pascal' from Process.hh.
Genie:  Make Process_ThreadEntry() a free function

Move Process::ThreadEntry() out of the class and the header.  It remains
extern because it's used as a template parameter.

This is important because in Apple's gcc, 'pascal' is a macro instead of
a keyword, and a Mac OS header must be included to define it, which we'd
rather do outside of our own headers.
Genie:  Zero parent os_thread in fork_and_exit()

Make sure the parent os_thread box is cleared whether or not it has move
semantics.  (The child's is known to be empty.)
Merge branch 'thread-entry' into os_thread
Merge branch 'os_thread_api' into os_thread
Merge branch 'os_thread_box' into os_thread
Genie:  Typedef owned< ThreadID > to os_thread_box
Genie:  Use os_thread in Process
Merge branch 'os_thread'