Add the possibility to save tmp code for nif tests
For NIFs, avoid leaking memory in case of some errors

A C++ protobuf message structure was always allocated, but not freed
in all cases of error situations.
For NIFs, also do encoding in the NIF

Previously, when generating NIF code, the protobuf library was only
used for decoding. Now it is used for both encoding and decoding.
In NIF decoding, use enum symbols instead of int values

Prefix (local) aa_ variables with gpb_aa_ instead, to reduce the risk
of collision with an enum symbol.
Update README.nif-cc with info on dirty schedulers
Merge branch 'encoding-in-nif'
Prepare for 3.16.0