Send paths as base64 strings

Paths are basically bytestrings to the OS, and we've caused ourselves
a lot of grief by trying to treat them as sets of characters instead
of bytes. Legacy data can, and frequently does, contain data in non-
Unicode encodings, mixed encodings, invalid encodings, etc.

v2 of the API sidesteps this by treating all paths as sets
of arbitrary bytes, and communicates them to/from outside services in
base64-encoded strings. The v1 API remains available and returns paths
as strings like before.

refs #6067
File explorer: base64 decode directory names

This updates the file explorer to use the new v2 API, which requires
a new base64 JavaScript library. The library used comes from here:
https://code.google.com/p/javascriptbase64/

refs #6067
Accept AICs anywhere that AIPs work

refs #5803

Added an AIC package type.  Create, extract, delete and download AIP also
accepts an AIC. Renamed a 'file' variable to package to not conflict with
builtin. Removed temp dir once finished with it.
Package resource: expose under file name