Merges function.* files into global.* files.  Also adds a constructor to array_ref to allow it to work for vector<T> when T has an overloaded operator&.