def initialize(description, parent=nil, &definition)
      @parent = parent || RootContext.new([],[], "", {})
      @description = description
      @contexts, @setups, @assertions, @teardowns = [], [], [], []
      @context_error = nil
      @options = @parent.option_set.dup
      prepare_middleware(&definition)
    rescue Exception => e
      @context_error = e
    end
Creates a new Context

@param [String] description a partial description of this context
@param [Riot::Context, nil] parent a parent context or nothing
@param [lambda] definition the body of this context