1. It checked that the requred size with the appended elements wasn't bigger
then the array size and then did nothing. If there were elements removed
from the beggining (by shift() operation), then "size <= array->size" can
be true even if there wasn't enought free space after the array.
2. After allocating more space to prepend elements, it set array->size without
counting those elements.
Probably, the original idea was to decrement array->size while removing
elements from the beginning, but it wasn't done right. Even if so, the
new version of the function looks cleaner.
This closes #152 and closes #153 issues on Github.