Core/Auth: Battle.net stuff
Verify received components
Core/Battle.net

* Fixed AuthResult codes
* Fixed BitStream::WriteBytes size check
* Fixed comparison operator for packet header
* Fixed channel for client packets without channel
* Implemented loading modules from database
Core/Battle.net: Refactored FCC writing
Core/Cryptography: Added class to generate SHA256 hashes
Core/Battle.net

* Extended AuthResult enum
* Implemented WriteString in BitStream
* Fixed HexStrToByteArray in reverse mode
Core/Battle.net: Fixed encryption
Core/Battle.net: Implemented authserver
Core/Battle.net: Send account flags in auth complete
Core/Battle.net: Downgrade packet structures to 4.3.4
Contrib: Added client patcher, original author @Fabi
Core/Battle.net: Fixed RealmJoinResult structure for 4.3.4
Core/Battle.net: Changed HandleAuthSession to work with battle.net formatted account names
Core/Battle.net: Use prepared statements in Battlenet::Socket
Core/Battle.net: Use prepared statements in Battlenet::AccountMgr
Merge branch '4.3.4' of github.com:TrinityCore/TrinityCore into 4.3.4
Contrib/Patcher: Make the client use realmListBn config instead of having to deal with portal and hosts rewrites
Core/Battle.net: Prevent joining invalid/offline realms
Core/Battle.net: Fixed size check in bit stream
Core/Crypto: Fixed values returned by HmacHash::GetLength