Preliminary version of white-label customization mechanism.

This version incorporates some custom versions of a few, specified graphics
items, if custom version are present in a designated branding directory.
It will be trivial to specify more graphics items.

The next step will be to provide similarly for custom settings, eg a custom
server.

New: custom/elements.json
- Identify items to overwrite the standard elements, in specified paths, if
  custom versions are found in the specified "GetCustomElementsFrom" directory.
New: .cordova/hooks/before_prepare/customize.js
- Consult custom/elements.json and copy the custom elements, if present.

One nuance worth mentioning is that using buffered copies, via
createReadStream().pipe(createWriteStream()), requires registering
callbacks on the end of the write, since the process stays around in order
to drain the event queue.
Use absolute paths, determined relative to the script's directory, so
success of the build preparation isn't sensitive to the directory from
which it is invoked.
Extend the configuration settings so that they are obtained from distinct
files, and then provide the means for including brand-specific override
settings - currently, the server - with a brand-specific file.

The scheme is arranged so that the brand-specific file need only specify
those settings to be overridden, leaving the rest alone. Currently, this is
not very meaningful, but this will future-proof customization code against
having to be modified as core settings accumulate.

To use it, copy www/custom_config.js into custom/brand and include entries
for the brand-specific settings.

As with all these customizations, they will only show up on the platforms
targeted by the elements.json entries.
Change the elements entry path format to unix-style.  We do a
string.split('/') in the code, and then join using path.join(), so it works
in a platform independent way, just is written in the sensible one.
Delete unused spideroak-up-button.png.
Provide for Android and iOS application icons.

Refine the elements.json specification format so that the source and target
files can have different names.

Rename after_prepare script icons.js to 10-icons.js and customize.js to
20-customize.js, for lexical sorting such that icons.js is executed first.

Add a batch of sample icons to test the arrangement, in 'brand_example'
directory beside custom/brand. To test, copy the contents from
brand_example to brand.
Use unix-style path for GetCustomElementsFrom (but convert it to
platform-independent style in the script, as with the other paths).
Whoops - SourceFolder is not used, all the custom elements are fetched from
GetCustomElementsFrom folder.
Don't use www.spideroak.com as an example alternate server - it doesn't work.
Include a note about the build customization faculty.
Ensure icons.js runs before customize.js by putting the former in
before_prepare, rather than depending on lexicographic ordering.
Add application-label configuration for javascript-controlled view labels,
and provide a sample customization of it.

This does not yet address html-embedded labels. That will require CSS-based
substitutions, and probably is best left for when we incorporate a dynamic
stylesheet preprocessing language.
Attempt merge/conflict resolution
Appeasing JSHint
Temporarily disabling a test to get the merge done
Merge pull request #311 from SpiderOak/issue-309-customizable-branding

Issue 309 customizable branding