Recursively resolve any lookups with the Variable.

        Args:
            context (:class:`stacker.context.Context`): Current context for
                building the stack
            provider (:class:`stacker.provider.base.BaseProvider`): subclass of
                the base provider

def resolve(self, context, provider):
        """Recursively resolve any lookups with the Variable.

        Args:
            context (:class:`stacker.context.Context`): Current context for
                building the stack
            provider (:class:`stacker.provider.base.BaseProvider`): subclass of
                the base provider

        """
        try:
            self._value.resolve(context, provider)
        except FailedLookup as e:
            raise FailedVariableLookup(self.name, e.lookup, e.error)