profiling: Add an application wide profile

The built in Python profilers are good for single thread profile but
given the excessive multi-threaded nature of vdsm, they are useless for
understing where we spend our time.

This patch uses yappi <http://code.google.com/p/yappi> to create an
application wide profile. New configuration options added to enable
profiling and selecting profile file format.

The default file format is PSTAT, which can be used with the builtin
pstats module. Another interesting format is CALLGRIND, used by
KCachegrind visualization tool.

Change-Id: I523f52c981f7bb34f3168d3117f00ed5eb6962f8
Relates-to: https://bugzilla.redhat.com/1074097
Signed-off-by: Nir Soffer <nsoffer@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/26113
Reviewed-by: Francesco Romani <fromani@redhat.com>
Reviewed-by: Adam Litke <alitke@redhat.com>
Reviewed-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/29676
Reviewed-by: Yaniv Bronhaim <ybronhei@redhat.com>
Tested-by: Yaniv Bronhaim <ybronhei@redhat.com>