Don't use and modify function pointers in global static tables

Make the tables const and keep a copy of the table in the
SWelsFuncPtrList struct instead, where any modifications to
the table only touch that individual instance of the codec.
Hardwire functions set up in WelsInitFillingPredFuncs

These are never overridden by any assembler optimized versions.
(The assembler optimized intra predictor functions may use such
optimized code internally anyway.)

This avoids global writable data.
Move pfCavlcParamCal into the function pointer list

This avoids using a global variable for this function.
Avoid using static arrays for keeping track of frame dumping state
Reduce code duplication
Avoid intermediate function pointers for some function pointers that are never overridden

These are only used in the leaf C versions of functions anyway.
Remove global function pointers in the encoder MC code

This is similar to how this is done in the decoder part of MC.
Destroy input frame on GMP encode on error conditions.
Merge pull request #1055 from ethanhugg/frameleakonerror

Destroy input frame on GMP encode on error conditions.
Merge pull request #1043 from mstorsjo/avoid-globals

Get rid of global non-readonly variables within the library