Adding Curl support 

This pull request adds basic support for Curl to Chapel. It provides the following to the user:
* It hooks in with the current I/O system so that the end user can use a "file" Curl handle much as they would a regular file in Chapel
* An interface to the ``curl_easy_setopt`` and ``curl_easy_perform`` functions, as well as functions to read from Curl into a string or a file (and bypass QIO). 
* It changes the make system so that we now use two user defined environment variables to find where the appropriate libraries and includes are for an "extra file system", this will be used in the future to specify paths for all "extra" file systems or I/O plugins.  
 - Note: These variables are named ``CHPL_AUXIO_INCLUDE`` and ``CHPL_AUXIO_LIBS`` since I plan on renaming *auxfilesys* to *auxio* in the near future (since Curl doesn't qualify as a file system).
* It changes the ``open`` function in ``IO.chpl``  so that we now parse the path to decide whether or not we should be using HDFS, Curl, or the local file system. This uses regexp when ``CHPL_REGEXP == re2``, otherwise, we parse the string using ``indexOf`` (etc.). 
* Some example usages can be found at: https://github.com/tzakian/chapel-unit-tests/tree/curl

 @mppf said he would review.
All this struct is used for is to keep track of how much we have read in the CURL callback function that we are calling in our ``preadv`` and ``readv`` functions. We simply put the iovec that we are passed into the ``vec`` field of the ``curl_iovec_t``.

Essentially, all the ``curl_iovec_t`` struct is meant to do is to keep enough information around between calls to the callback (from CURL) so that we can populate the ``iovec`` passed into the function. This is in lieu of e.g., the ``for`` loop in the standard implementation of ``preadv``/``readv`` to populate the various buffers of the vector.