Permission cache overhaul

* Reworked group permission caching in session data (follow-up to cd45c30ab2dcc44bfbfac283d15bb09b3d4644bc)
 * Removed duplicated information from session data in favor of direct pointer to group settings.
 * Added getters for all group data required to process permissions and related stuff.
 * Added new functions to PC interface and updated calls everywhere.
 * Extracted function to set new group for a player (used at login, group config reload, manual adjustment of group).
 * Moved command permission config parsing to atcommand module.
* Improved dummy map session handling.
 * Since it's required for all map sessions to have a valid group, dummy sessions are now created by a designated function.
 * Updated related code that uses dummy sessions (console `gm use` and script `atcommand`, `useatcmd`).
* Various minor improvements and cleanups.
 * Eliminated some global variables related to loading atcommand permissions for group by passing them directly to function.
 * Moved definition of global array holding PC permission names from header file to source file.
 * Streamlined destuction of atcommands database to use DBApply helper function instead of DBIterator.
 * Replaced hardcoded position of console dummy session with defines from mapindex.h (thx Haruna for pointing it out).
 * Removed fixed length restriction on group names.
Fixed Bug #7486
- Fixed 'close' issues that causes players to stuck.

Signed-off-by: j-tkay <joseph.tk.ea@gmail.com>
Fixed Bug#7601
-Disabled reflect damage cap in pre-re.

Fixed Bug#7606
-Where GC_CREATENEWPOISON is not working properly.

Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Merge pull request #71 from HerculesWS/permission-cache-fix

Permission cache overhaul

* Reworked group permission caching in session data (follow-up to cd45c30ab2dcc44bfbfac283d15bb09b3d4644bc)
 * Removed duplicated information from session data in favor of direct pointer to group settings.
 * Added getters for all group data required to process permissions and related stuff.
 * Added new functions to PC interface and updated calls everywhere.
 * Extracted function to set new group for a player (used at login, group config reload, manual adjustment of group).
 * Moved command permission config parsing to atcommand module.
* Improved dummy map session handling.
 * Since it's required for all map sessions to have a valid group, dummy sessions are now created by a designated function.
 * Updated related code that uses dummy sessions (console `gm use` and script `atcommand`, `useatcmd`).
* Various minor improvements and cleanups.
 * Eliminated some global variables related to loading atcommand permissions for group by passing them directly to function.
 * Moved definition of global array holding PC permission names from header file to source file.
 * Streamlined destuction of atcommands database to use DBApply helper function instead of DBIterator.
 * Replaced hardcoded position of console dummy session with defines from mapindex.h (thx Haruna for pointing it out).
 * Removed fixed length restriction on group names.
Follow up e14ab5561a53bc17c9186a22ecd07060772e6dc6

Fixed Travis, special thanks to Gepard

Signed-off-by: shennetsind <ind@henn.et>
Merge branch 'master' of https://github.com/HerculesWS/Hercules into ghbb

Conflicts:
	src/map/atcommand.c
	src/map/clif.c
	src/map/pc.h