"Low level" programming exercise: reproduce functionality of Java ArrayList
using C style arrays and dynamic memory allocation. The list can be mutable and does
not have to be polymorphic, it may contain only int. lambda functions introduced
in C++ 11 may be used as "callbacks".