Run keepalive in a dedicated thread

Periodic tasks are not concurrent, they run one after the other in
a single greenthread so if a periodic tasks take a long time to run
(e.g syncing the power state of the devices) the conductor will miss the
keepalive and will be considered dead even tho it's not. This commit is
adding the keepalive to a dedicated greenthread to avoid such problem.

Partial-Bug: #1308680
Change-Id: Ib4159e55a42f268c75f362180e145e637735c16d
Remove 'node' parameter from the Deploy interface

The node parameter is redundant since the node object is an attribute
of the task object.

In the PXE driver, the helper functions _create_token_file,
_remove_internal_attrs, _update_neutron and _create_pxe_config were also
updated removing the 'node' parameter from the function definition.

Partial-Bug: #1312632
Change-Id: I82b3078c00cdf6e417c3f379bf03f1c5cae533d7
Fix chassis bookmark link url

Fix the chassis bookmark link url and modify the validate_link() at
tests/api/base.py to enable it to validate bookmark links. The tests on
all the resources were also updated to check if the bookmark link was
generated correctly.

Closes-Bug: #1304564
Change-Id: I8383dd1d48569dadbbafb4587c89973f8440b396
Add parallel_image_downloads option

Updates the Ironic image_cache module so that we
use a new parallel_image_downloads (False by default)
option to control whether images are downloaded
and converted to raw format in parallel.

This option helps resolve IO thrashing issues which
can occur on small seed VMs (or small baremetal nodes)
where parallel image downloads and qemu-img conversions
can cause cryptic deployment failures in ironic-conductor.

Change-Id: Id1a63d22cdfd26e9360fdfd747162f549f95da33
Closes-bug: #1322676
Merge "Run keepalive in a dedicated thread"
Merge "Fix chassis bookmark link url"