Selection of bug fixes and upgrades

- There was at least one circumstance where the options menu would
  attempt to include 13 buttons and cause a script error.  Options
  menu has now been split.
- Dress code has been enhanced and made more efficient using such as
  @detachallthis:layer which is a viable shortcut to @getpathnew:layer
  followed by a listener and timeout then a @detachall:layer.
- Implemented new alternative to provide similar options to the old
  plus folders that takes advantage of the folder heirachy browsing
  and avoids refdefining a prefix with a defined meaning within the
  RLV API itself.  Prefixes with specific internal meaning to the
  viewer should not be redefined by scripts as this may cause issues.
  The new system allows for a folder name to be prefixed !> rather than
  just with > and acts as a chroot for the paths to ~nude and ~normalself
  etc.
- Fixed an issue with the multiple controller code the test was failing
  in some cases due to the list ending up with mixed string and key types
  due to link messaging.  To support sending the entire list as a list
  without looping though just using a list of strings and making sure to
  use string compare.
- From something Mei mentioned in a comment gave me an idea I decided to
  add support for defining controllers in preferences using a name which
  might be easier for some users to work with uses the name2key database
  at https://api.silkytech.com/name2key for lookups with a backup check
  done whenever the key is touched in case any name happens to be
  missing in the database though that should be fairly rare the current
  DB has some 6.1million entries and usually has a >99% hit rate.  I would
  suggest in documentation that we still suggest that adding a key is the
  favoured way to do it as it saves on the lookup and in theory is more
  reliable but the option is there.
- Added some initial HTTPdb support using the online database located at
  https://api.silkytech.com/httpdb two options are included to make a key
  work offline and not share settings.  Placing an inventory asset like a
  notecard inside the key with the name .offline or alternatively through
  using the Offline Mode option of the features menu.  Most settings are
  backed up though the implementation for some is still not in place and
  others need to be checked to make sure we are not missing any important
  config variables.  Some runtime information is also stored such as the
  timeLeftOnKey variable, implementation pending for lock expire times
  etc.
- Multiple controllers presents an issue with lookup up all of the names
  for now this is being offloaded to the viewer using the viewer namespace
  URI secondlife:///app/agent/<UUID>/displayname but this will not work for
  such as dialog buttons if we decide to implement features which would
  need them.
Bugfix and performance improvements on startup.

Several duplicate link messages and other minor startup niggles have
been cleaned up improving startup time.

Much larger gains in startup time have been added for script resets
by avoiding redundant reads of the preferences notecard.  Redundancy
being defined as all of the following being true.
- The HTTPdb is online and a record retreval search returns status
  200.
- There exists a record in the reply with key ncPrefsLoadedUUID.
- The record for ncPrefsLoadedUUID is not null and matches the UUID
  of the preferences notecard located inside the worn key.

A bug was found in Start.lsl which would result in the startup hanging
if there was no Preferences notecard available, now the startup will
simply give a debug message then jump to the doneConfiguration() step.
The same occurs where the notecard is not to be read because it is not
necessary.

Performance results:
- Script reset load times now under 5 seconds.
- On rez load times are now around 1 second.
Failed to save file correctly before commit