gdb: pretty print PERCPU(type, var)

In OSv some variables are duplicated so that there's a copy
for each CPU, to avoid synchronization overhead.
Typically those object would be CPU-local caches.
For example, in core/mempool.cc we have

    PERCPU(page_buffer, percpu_page_buffer);

a free page buffer for each CPU.

Printing those variables is not trivial in gdb, we thus introduce a
command to print all values for all CPUs. Typical usage is:

    (gdb) osv percpu memory::percpu_page_buffer

that would print the value of percpu_page_buffer for all available
or:

    (gdb) osv percpu memory::percpu_page_buffer nr

which would print the nr field in the percpu_page_buffer for all
available CPUs. Finally:

    (gdb) osv percpu memory::percpu_page_buffer free 0

would print percpu_page_buffer.free[0] for all available CPUs.

Usage:

    (gdb) osv percpu <per-cpu instance> [field-descend-to...]

Reviewed-by: Tomasz Grabiec <tgrabiec@gmail.com>
Signed-off-by: Elazar Leibovich <elazarl@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>