Add a prototype of vector like functions on 1D arrays

This commit adds the following methods to the _array record.  They currently
apply to 1D unstridable rectangular arrays only.  The methods that resize
the array assert at runtime that there is a 1:1 correspondence between the
array and its domain.

front() // return the first element of the array
back() // return the last element of the array
empty() // is the array empty?
push_back() // put a new value at the back of the array
pop_back() // remove a value from the back of the array
push_front() // put a new value at the front of the array
pop_front() // remove a value from the front of the array
insert() // insert a new value at a specified position and shift other elements

The methods that change the array size call reallocate every time instead of
doing something smarter like a doubling/halving scheme.

Added a test that does some pushes and pops on an array.
Added a test that tries to push_back an array declared over a domain has
multiple arrays.
Add a simple array vector operations benchmark

This shows the performance of array vector operations.  There is plenty of
room for improvement because every operation reallocates currently.  It
should work as a perf test.
Merge remote-tracking branch 'origin/master' into vectorArray
Move while stmt from block stmt 2 keywords to other.

Make while an other keyword (c-other-kwds) in emacs major mode instead of block
stmt with 2 keywords (c-block-stmt-2-kwds). Before this change, the indentation
for the block of while loops that did not surround the conditional in
parenthesis was broken.
Add runtime support for the upcoming string implementation.

runtime/include/chpl-mem-desc.h:
  Add new memory descriptor types STRING_INIT_DATA and STRING_COPY_REMOTE.

runtime/include/chpl-string.h
runtime/src/chpl-string.c:
  Add new support functions.

  - initString() takes 2 strings, old and new.  If old is longer than
    new, it copies new into old and returns old.  Otherwise, it frees
    old and allocates space for a copy of new.  I'm not crazy about
    this name, so any suggestions are welcome.

  - remoteStringCopy() takes a remote node id, remote address, and
    string length.  It allocates space for the remote string and
    copies the string from the remote locale.

runtime/src/chpl-string-support.c:
  Removed incorrect comments regarding the use of the string literal "".
Merge branch 'master' of github.com:chapel-lang/chapel into record-string
Change a config variable from param to const in test

Change a config param to config const so it can be set at runtime.
Rename and change functionality of runtime function for allocating a local string.

I never liked the name initString, but I found a better name for it
due to restructuring the functionality.  It's now called stringMove(),
which copies the len bytes of src into dest and returns dest.  If dest
is "", then it allocates a new buffer for the copy, and returns that
buffer.  It is the caller's responsibility to make sure the src is
large enough to hold dest.

This puts the buffer reuse policy into the new string module.  Note
that the allocation must be done in the runtime since there is no way
to call chpl_here_alloc() from the runtime.
Updating comment on stringMove().
New string record.
Merge branch 'master' of github.com:chapel-lang/chapel into update-while-stmt-in-emacs-mode
Copy etc/emacs/23/chpl-mode.el to etc/emacs/.
Remove version specific chpl-mode.el files. They were identical.
Create symlinks for emacs/{22,23}/chpl-mode.el to preserve backwards compatibility.
Making tcmalloc the default when compatible with host compiler
Update etc/emacs/README with correct information.
rst-ify etc/emacs/REAME
Using target compiler instead of host compiler
Fix formatting of directory index.
Reference both .emacs and .emacs.d/init.el files.