Update dynamic Array.

Just a general small update. 
Shamelessly stolen goods from SM.

This patch is motivated for the following reasons:
 * If we can, we should keep the same internal class as SM, for maintainability reasons.
 * To add the missing extra parameters in some natives SM supports.
 * To ease introduction of Stack structures later.

Technical notes:
 * ```CellVector``` class is replaced by ```CellArray``` from SM as it is..
 * String was needed some attention as in AMXX we copy character per cell.
 * Probably ```ArraySort[ex]``` natives which received the most changes.
 * Changed ```CVector``` -> ```ke::Vector```.
 * Documentation is updated and completed.
 * This passes all tests from test plugin.


This comment about only using ArrayGetCell on arrays with a cellsize of 1 should probably be removed now. It can now be used with larger cell sizes with the addition of the block param.