Implement "FIELD_change_state" methods

Hello,

Sometimes is useful to invoke a state changing by state name. The request has added the `FIELD_change_state` method for support the functionality. By example:

```python

class Post(models.Model):
    status = FSMField(protected=True, default='new')
    reviewed_by = models.ForeignKey(User, null=True)

    @transaction(source="new", target="reviewed")
    def review(self, reviewer):
        self.reviwed_by = reviewer

    @transaction(source="reviewed", target="publish")
    def publish(self):
        pass


def publish_process(post, user):

    post.status_change_state('reviewed', user)
    post.status_change_state('publish')

```
If there's several transition functions for the target state, doesn't that select one of them randomly? If it is, I think we should change that and raise an exception instead.