Support dedicated tenancy for EC2 cloud

Salt Cloud is missing the ability to specify that the box being launched should be launched on to a dedicated box, or what EC2 calls instance tenancy. This pull request adds the ability to give a value for the "Placement.Tenancy" parameter, as documented in <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RunInstances.html>

It adds a "tenancy" option for the ec2 provider, which can be set to a string by the user to "dedicated" or "default".

Note that this option is not valid for spot instances, as seen in the lack of documentation for the option at <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-RequestSpotInstances.html>, so we raise an exception if a spot config is found, even if the value is set to "default".

While there, the code also does some minor cleanup of code for getting subnet ID, and adds missing spot_prefix for SubnetId and EbsOptimized, based on the RequestSpotInstances documentation.