Improve activities

### `typename` という概念
`{% render_activity <activity> (of <typename>) %}` という書式に変更された。これにより参照テンプレートをある程度操作することができる。

デフォルトの挙動では`typename`が指定されると、下記のテンプレートファイルが**先に**参照される。

- `activities/<app_label>/<model>_<status>.<typename>.html`
- `activities/<app_label>/<status>.<typename>.html`
- `activities/<status>.<typename>.html`

それらが見つからない場合は`typename`非指定時と同様。

また`Context`として`typename`という値がテンプレートに渡される。基本はテンプレートファイルが変わるため不要だと思うが、念のため。

とくにこだわったことをしたい場合は`prepare_context`と`render`と`get_template_names`すべてに`typename`という引数が渡されるため、ここをオーバライドすれば良い。

また拡張子の指定を`typename`毎に行いたい場合は`get_template_extension(typename)`が使用できる。
これは`ActivityMediator`に指定されている`default_template_extension (str)`と`template_extensions (dict)`から指定された`typename`が使用するべき拡張子を取得するための関数。例えば`twitter`というタイプは拡張子に`.txt`を使いたい場合は下記のようにすればよい。

```python
# settings.py
ACTIVITIES_DEFAULT_TEMPLATE_EXTENSION = '.html' # デフォルトでこの値なので指定不要
ACTIVITIES_TEMPLATE_EXTENSIONS = {
    'twitter': '.txt',
}
```

ここでは`settings`に指定しているが、`ActivityMediator`に`default_template_extension`や`template_extensions`が指定されていない場合は`settings.ACTIVITIES_DEFAULT_TEMPLATE_EXTENSION`および`settings.ACTIVITIES_TEMPLATE_EXTENSIONS`が使用されるため、通常はこの方法で良い。

このようにすると `ActivityMediator.get_template_extension('twitter')`が`'.txt'`を返すようになり、`get_template_names(activity, typename)` で返されるすべてのテンプレートパスがその拡張子を利用するようになる。

### `get_activities_of` テンプレートタグ
モデルもしくはオブジェクトに関連する`Activity`のクエリを返す。モデルを指定する場合は文字列にて下記のように指定すれば良い

```
{% get_activities_of '<app_label>.<model_name>' as <variable> %}
```

またオブジェクトを指定する場合は、オブジェクトを渡せば良い

```
{% get_activities_of <object> as <variable> %}
```

下記使用例参照

```
{# object というオブジェクトが存在し、それに関連するすべてのActivityが欲しい場合 #}
{% get_activities_of object as activities %}

{# イベントに関連するActivityが欲しい場合（大文字はすべて無視される） #}
{% get_activities_of 'events.Event' as activities %}
```