Added new RNG which uses SFMT.
Move RNG exponent definition to main CMakeLists.
Replaced rand() calls with new RNG in gemrb core.
Fixed upper bound in RNG default value.
Added additional bound checks to RNG.
Replaced exception by error() in RNG.
Use previous behaviour of time assignment again.
GetUsableMemorizedSpells: look at 10th level spells too

fixes how's ranger tracking being skipped
bg1: rangers get an extra charm animal every other level
iwd/how: added deharcoded clabs

more work needed for druid and ranger
GUICommon: added shared clab setter from bg1
iwd::cg: apply clabs
how: handle ranger tracking in the data, without extra code
bg2: use the same chargen clab setter
AREImporter: fixed regression from 833056d and bugs from 31d4d4b1

iwd1 also uses IWD2ScriptName, so too much code was run, breaking
avatar removal in particular, making both iwd/how unfinishable

thanks go to merbie for bisecting
reverting 489ade973 and a few further changes

    Map::UpdateScripts: don't run scripts for actors with avatarremoval set

    true for at least bg2 and we'll use it internally in iwd2

the first concrete test case is how's starting dialog's cutscene,
which breaks with this in place, as the actor marks himself *poof*
mid-cutscene. Similar things happen in iwd2, so some other mechanic
for AF_ENABLED needs to be implemented.
Actor::RefreshEffects: renamed a local var to not overlap with a member one
iwd2: make too difficult actors unscheduled instead of using avatar removal

finishes the refactor from 06f6f839f and makes everything dandy again
GemRB_ApplySpell: mention the last parameter in the docstring
GUISTORE: fixed raise dead not teleporting the target to the current area