Rename Pool* to Cache*

No functional change. Just largely mechanical textual substitution.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Introduce the CACHE interface

Morph the existing cache code into a first class interface and make GNTTAB
the first client.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Export CACHE interface to child drivers

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Remove much code duplication involved in interface query

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Modify GNTTAB interface to support caches

Remove the Get/Set methods and replace with CreateCache/DestroyCache methods.
The PermitForeignAccess method the uses a cache to allocate an entry as it
requires. Also, as we're not only using grant table v1, we can get rid of
the idea of different types of permit and drop the use of varargs.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Merge pull request #30 from pauldu/gnttab

Updated GNTTAB interface