Allow to make dynamic related name with current class
What you have there is really no different from the current behavior. For instance:

``` python
In [1]: from peewee import *

In [2]: class User(Model):
   ...:     username = CharField()
   ...:     

In [3]: class BaseTweet(Model):
   ...:     user = ForeignKeyField(User)
   ...:     

In [4]: class Tweet(BaseTweet):
   ...:     pass
   ...: 

In [5]: class PhotoTweet(BaseTweet):
   ...:     pass
   ...: 
In [6]: User.phototweet_set
Out[6]: <peewee.ReverseRelationDescriptor at 0x7f42ac136710>

In [7]: User.tweet_set
Out[7]: <peewee.ReverseRelationDescriptor at 0x7f42ac136490>
```
 > What you have there is really no different from the current behavior.

Well, I know that. But I want to take control over this naming…
 @coleifer can you reconsider this? In my point of view it does not hurt, while allowing user to customize easily related names.

When declaring a ForeignKey in an abstract class, this allows
to customize the related_name for each child.

For example:

``` python
class Other:
    pass

class Abstract:
    # Will create Other.child1_foo and Other.child2_foo accessors.
    other = ForeignKey(Other, related_name='{classname}_foo')

class Child1(Abstract):
    pass

class Child2(Abstract):
    pass
```

Thanks :)
