General purpose resizable ARRAYs as they are define in the Eiffel language definition.
The lower bound can be any arbitrary value, even a negative one.
This implementation uses only one chunk of memory, the storage area which is a NATIVE_ARRAY. One must
keep in mind that this internal storage area is always kept left align. Thus, you can expect good
performances while using an ARRAY to modelize a stack behavior with add_last / last / remove_last.
Conversely add_first and remove_first are likely to slow down your program if they are too often
used. If the fact that lower is always stuck to 0 is not a problem for you, also consider FAST_ARRAY to
get better performances.