1.0.23.10: allocate code objects using allocation CODE_PAGE_FLAG
(Code and data separation 5.)
* CODE_PAGE_FLAG == BOXED_PAGE_FLAG|UNBOXED_PAGE_FLAG, which may or
may not be better then having a separate bit for it -- but seemed
easier to implement and doesn't seem too horrible.
* Define page predicates instead of manually open coding things all
over the place. Also a convenient way to make sure we catch all the
places where == needs to be changed to & when checking for boxed
pages, etc.
* trans_code_header keeps code objects on code pages.
* Take separated code pages into account when pinning: since
code-objects live on their own pages, we get most of the accuracy
benefit of the scanning by just checking for code_page_p.
Similarly, there is no need to do a full scan unless
is_lisp_pointer is true.