text: Title: What is the need for a specific Mutation class?
  Body: Hello all!
  
  First of all, thank you for this library! It has been very useful for me.
  
  Graphene's documentation on mutations (http://docs.graphene-python.org/en/latest/types/mutations/) says that `A Mutation is a special ObjectType that also defines an Input`. However query fields also define an input, but directly on the field definition.
  
  By reading the guide in http://graphql.org/learn/queries/#mutations, mutations only really differentiate from queries in the fact that mutations are executed sequentially. So, my question is: why is there a Mutation class?
  
  What would be the problem if I used the following?
  
  ```python
  import graphene
  
  class CreatePerson(graphene.ObjectType):
      ok = graphene.Boolean()
      person = graphene.Field(lambda: Person)
  
  class MyMutations(graphene.ObjectType):
      create_person = graphene.Field(CreatePerson, args=dict(name=graphene.String()))
  
      def resolve_create_person(self, info, name):
          person = Person(name=name)
          ok = True
          return CreatePerson(person=person, ok=ok)
  ```
  
  I believe this approach is more consistent with the paradigm used for creating queries, i.e., define CreatePerson as the object that is returned by a mutation that creates a person -- the mutation itself is implemented in `MyMutations` class (and there could be different functions for creating a person). 
  
  Am I missing something?