tasks: add inline workload support to workunit.py

The inline_workunit section is a shell snippet to run on the
targets (i.e. machines) listed in the clients section.

        - workunit:
            inline_workunit: >-
              /bin/true
            clients:
                client.0: [inline_workunit]

It is exactly equivalent to having a script named inline_workunit in the
qa/workunits directory downloaded from the ceph repository.

Integration tests for workunit.py task are added in tests/workunit.
The get_workunits and adjust_and_coverage are added to help with
integration testing. get_workunits will pull workunits from a
designated location instead of the default and adjust_and_coverage
can be used to not adjust the ulimits, which requires downloading the
ceph packages and slows down the test for individual features.

Signed-off-by: Loic Dachary <loic-201408@dachary.org>
Also, would you mind using quotes to wrap paths? it is always a good idea in case there is spaces and other things that can make this break