Also changed a few things like destroy tanking a double pointer so that
is more secure and making sure before hand that capacity is not that
ridiculous of a size, still, shit can get pass but generally is fine
So, added private functions made to grow and shrink the array in a
multiple of 2, 2 as a factro is fine, at least that is Rust does it that
way. Also changed the design to ADT, forgot i liked that, probably will
be changing that to apply also to my Arena implementation, i will see if
fits --probably--.