CP-9936: Foreign page identification

 *  Add PG_foreign
 *  Set/clear PG_foreign on grant map/unmap and set page->private.
 *  Make netback use PG_foreign and remove its netback specific code for foreign page tracking

Breaks m2p_find_override - this is ok since m2p_override is only needed when userspace
is doing I/O to/from granted pages and XenServer does not do this
CP-10209: Mark vmlinux as executable

Mark vmlinux as executable so that RPM generates a
/usr/lib/debug/.build-id symlink to it.  This is in line
with the RHEL kernel.
CP-9798: Remove use of BuildRequires(pre)

BuildRequires(pre) was removed in later versions of RPM since it is
no different from BuildRequires, so convert all uses of it.
CP-9934: Safe grant unmap (unmap only when no longer in use)

* Make gnttab_unmap_refs() fail if the reference count is not one.
* Introduce gnttab_unmap_refs_async() with its polling retry and completion (I suggest using delayed work).
* Make blkback use gnttab_unmap_refs_async().
* Make gntdev use gntab_unmap_refs_async(). The driver should sleep if it needs to wait for the unmap to complete.