Added type-aliases for references.

Added member types "reference" and "const_reference" to "array_md."
Changed implementation of one non-const version of "at."
Added range-for support.

Added the "begin" and "end" methods, in mutable and immutable modes, to
"array_md" so objects of such will work as a data source for the range
variant of the "for" statement.
Made "array_md" comply to Container interface.

Added "difference_type," "iterator," and "const_iterator" types to
"array_md."  Also added the "max_size," "empty," "cbegin," "cend," and
"swap" methods.  Added free-standing swap, operator== and operator!=
functions.