Groupchat

add groupchat module
don't do too much conversion. here is what will I do for the `{ok, MembersInfoList} ->` case (has not been tested):
```erlang
                {ok, MembersInfoList} ->
                    SenderJidBin = jlib:jid_to_binary({From#jid.user, From#jid.server, <<>>}),
                    Lang = lists:keyfind(<<"xml:lang">>, 1, Packet#xmlel.attrs),
                    lists:foreach(fun({MemberJidBin, _Nickname}) when MemberJidBin =:= SenderJidBin -> ok;
                                     ({MemberJidBin, _Nickname}) ->
                                          GroupJid = To,
                                          GroupJidBin = jlib:jid_to_binary(GroupJid),
                                          Attrs = [{<<"from">>, GroupJidBin},
                                                   {<<"to">>, MemberJidBin},
                                                   {<<"type">>, <<"chat">>},
                                                   Lang,
                                                   {<<"user">>, jlib:jid_to_binary(From)}],
                                          ejabberd_router:route(GroupJid,
                                                                jlib:binary_to_jid(MemberJidBin),
                                                                Packet#xmlel{attrs = Attrs})
                                  end,
                                  MembersInfoList);
```