re-did the m3 EBS logic to map ephemeral virtual names to the same device names + broke out logic in AwsAutoScalingService into isolated method  for easier testing
fixed codenarc issues
fixed spacing
Created a security group custom tag lib for distinct way of handling security group links.
Created service method to get GroupIdentifier objects based on security group IDs

This will be useful for cases like showing a Load Balancer, where the API only gives security group IDs but we also want to know the security group names.
Clarified unit test name
ASGARD-1159 - View security groups for ELB (in VPC where ELBs can have SGs)
Unit test for LaunchConfigurationController.show
Added unit test for SpotInstanceRequestController.show
Added ability for SpotIntstanceRequestController.show to render security group ID objects for better links
Better unit test for AutoScalingController.show
Added ability for AutoScalingController.show to render security group ID objects for better links
Added ability for LaunchConfigurationController.show to render security group ID objects for better links
Enhanced /security/show to add missing groupName values for ingress permissions that only have groupId
ASGARD-1034	- Display both id and name for security group links

This change applies to almost every page that shows security groups, including the various controller actions that reuse _launchTemplateFields.gsp
The only exception is LaunchConfig list, which is unimportant and has too much data to justify all the lookups
Merge pull request #488 from aglover/m3-customize

M3 customize -- M3 instance types require ephemeral drives w/virtual names
Merge pull request #489 from joesondow/ASGARD-1159-and-ASGARD-1034-security-group-fixes

ASGARD-1159 and ASGARD-1034 security group fixes