Propagate ANNMemory_free to IBurstContext::freeMemory

This CL extends nn::Memory to include a reference to all burst objects
which use its memory. When the nn:Memory object is destroyed (via
ANNMemory_free), it signals all these burst objects so that they can
properly clean their memory caches (via IBurstContext::freeMemory).

This CL also provides a more intelligent memory slot allocator within
ExecutionBurstController to reuse slots after they are freed.

This CL includes some additional miscellaneous code cleanup of the
neighboring test cases, e.g., closing file descriptors when they are no
longer needed.

Bug: 128319484
Test: mma
Test: atest NeuralNetworksTest_static
Change-Id: Ibc19059af5194cd3dd58c9a9d8baa54fa6b26de5
Merged-In: Ibc19059af5194cd3dd58c9a9d8baa54fa6b26de5
(cherry picked from commit be300c175e726e5b41e50af2b814cfd24f3360a1)
16 files changed