[Rewrite] Fixed 2d/3d arrays on .Net

Mono can use ldlen and ldelema on both 1d arrays (vectors) and 2d/3d arrays. However, .Net can only use these instructions on 1d arrays - higher rank arrays must use get_Length and Address explicitly.

Closes issue #116