Detail view: support per-action filtering

Adds support for adding preFilter on a per-action basis, to assist in
plugin development. If action.preFilter function is passed, and returns
true/false, the action is shown/hidden. If no preFilter is specified,
then the action will be passed through the detail view's standard filter.

Example:

testAction: {
    label: 'Test Action',
    ...
    preFilter: function(args) {
        return false; // Action will be hidden
    },
    ...
}
CLOUDSTACK-6662
CLOUDSTACK-6844

 exit status delivery might get delayed

 Please enter the commit message for your changes. Lines starting
CLOUDSTACK-6940:Templates cannot be downloaded from URLs without
matching file extensions.
CLOUDSTACK-6941: Can't choose storage for the volume, when attaching uploaded data volume to VM

Changes:
- Only way to choose a certain storage pool is by using disk_offering_tags
- Added a parameter to take in a disk offering Id.
- Admin will have to create a custom sized disk offering and tag it as necessary for the user
- This custom offering Id should be passed during uploadVolume to associate the volume with this disk offering
CLOUDSTACK-6636: [Windows] Can not create Template from ROOT snapshot on Windows management server with Xen/NFS storage type. This change is only for XenServer with NFS Storage Server. Will fix remaining when we touch them.

Signed-off-by: Koushik Das <koushik@apache.org>
CLOUDSTACK-6931: Set hypervisor.type in agent.properties using cloudstack-setup -t option. Default is kvm.
CLOUDSTACK-6923: updated listLBStickinessPolicies API to list using stickinesspolicy id
CLOUDSTACK-6922: Updated events for firewall ingress and egress
CLOUDSTACK-6750: [OVS] With stretched network deploying vm in a ovs
disabled zone does not fail

Fix ensures that connectivity service provider is enabled in the zone on
to which nework is being streched.
LOUDSTACK-6861: Fixing nfs mount path
CLOUDSTACK-6943: Skip VM snapshot tests on KVM
CLOUDSTACK-6847.Link.java and console proxy files have hardcoded value
CLOUDSTACK-6830: Fixed during VM migration, volumes on zone wide primary store
requires storage migration resulting in failure of VM migration. This also improves
the hostsformigration api. Firstly we were trying to list all hosts and then
finding suitable storage pools for all volumes and then we were checking whether
vm migration requires storage migration to that host. Now the process is updated.
We are checking for only those volumes which are not in zone wide primary store.
We are verifying by comparing volumes->poolid->clusterid to host clusterid. If it
uses local or clusterids are different then verifying whether host has suitable
storage pools for the volume of the vm to be migrated too.
CLOUDSTACK-6906: Fixing volume resize BVT
Protect event interpretion from causing NPE exception
Changed logic for copying snapshot from S3 to NFS staging store to prevent needless failure.

Signed-off-by: Daan Hoogland <daan@onecht.net>
CLOUDSTACK-6971: createAutoScaleVmProfile failed with NPE due to lack of bean
    injection.
Fixed Resource Leaks, null dereferences, invalid value comparisons, invalid result set loop

Signed-off-by: Daan Hoogland <daan@onecht.net>
CLOUDSTACK-6968: allowing cluster scope volumes to attach to any VM. If migration is
needed then first they will be migrated to appropriate cluster before attaching.
CLOUDSTACK-6965: fixed the NullPointerException introduced by fix for cloudstack
6935 in AbstractStoragePoolAllocator#filter method for Zone Wide storage