Fix eaassert.h include guard
eaassert.h does not have a strict enough include guard to trigger the multiple inclusion optimization on most compilers.
The #if defined(EA_PRAGMA_ONCE_SUPPORTED) check occurs before any include of eacompilertraits.h (where EA_PRAGMA_ONCE_SUPPORTED is defined) so the preprocessor sees the #pragma once only if eaassert.h is included after another header that includes eacompilertraits.h.
The traditional include guard is also not strict enough to trigger the multiple-inclusion optimization as the only tokens that can appear outside of the #ifdef/#endif pair are whitespace, comments, and the null directive # (for certain compilers
https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html). However, the previously mentioned EA_PRAGMA_ONCE_SUPPORTED check disables this optimization.
This commit moves the #pragma once code after the include directive where EA_PRAGMA_ONCE_SUPPORTED would be defined. It also tidies up the traditional include guard so that it satisfies the stricter rules mentioned above.
This was issues was found with IncludeGuardian 0.0.7.
The full output from IncludeGuardian (https://includeguardian.io) with this particular issue highlighted can be found here https://gist.github.com/IncludeGuardian/a3716704237848e258471471b058879a#file-eastl-yaml-L160-L161
@grojo-ea Would anyone be able to take a look at this?