code: def standalone_from_launchable(cls, launch):
          
          attrs = copy.copy(launch.el_attrs)
          # Remove attributes we overwrite / don't need
          del attrs["Type"]
          if attrs.has_key("DependsOn"):
              del attrs["DependsOn"]
          if attrs["Properties"].has_key("SpotPrice"):
              del attrs["Properties"]["SpotPrice"]
          if attrs["Properties"].has_key("InstanceMonitoring"):
              del attrs["Properties"]["InstanceMonitoring"]
          if attrs["Properties"].has_key("SecurityGroups"):
              del attrs["Properties"]["SecurityGroups"]
          if attrs["Properties"].has_key("InstanceId"):
              raise RuntimeError("Can't make instance from launchable containing InstanceId property")
          inst = EC2Instance(**attrs)
          # TODO: shallow copy?
          inst.iscm = launch.iscm
          return inst
docs: Given a launchable resource, create a definition of a standalone
          instance, which doesn't depend on or contain references to other
          elements.