mgmt: update to latest

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
scripts: top.py

This patch adds a "top" script (scripts/top.py) which one runs on the
host, and it connects to an OSv guest through the REST API. Every two
seconds it makes an /os/thread request to get the list of all threads,
and each one's total CPU time. Subtracting two consecutive lists provides
us with the CPU time consumed by each thread during this period, which
is then divided by the elapsed time to produce the CPU usage percentage
of each thread. On each refresh, the top 20 threads are displayed.

For example, during a single-threaded memcached run:

155 threads on 4 CPUs; idle:  12%  77%  98%  99%
   ID  %CPU    TIME NAME
  216  91.5   19.30 >/memcached
   41  17.9    3.32 virtio-net-rx
    2   2.1    1.25 page-access-sca
    6   0.5    0.09 rcu0
   14   0.4    0.04 percpu1
   13   0.1    0.04 rcu1
    5   0.0    0.02 balancer0
    7   0.0    0.04 percpu0
   16   0.0    0.01 rcu2

The idle threads are not shown in the main list, but rather on the top
summary line, which says how many CPUs were found, and what percentage
of the time this CPU was idle over the last period.

The percentage, including idle percentage, is not very accurate, and
numbers slightly below and even slightly over 100 can be expected for
running threads, because of a quirk in thread::thread_clock's
implementation, which cannot see a running thread's current time-slice.
But because typical time-slices are much shorter than top's period
(2 seconds), this problem is usually negligable.

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>