Handle double path registration

Canonicalise paths from /var/lib/use-ephemeral/stateful-paths and only
copy files from a path once.

This means that if path /a is registered twice, you don't end up with
/mnt/state/a/a.

Note: symlinks must be relative for this to work. Rewriting absolute
symlinks can be a follow-on patch.

Example (hacked slightly to work as if boo was root):

  $ tree boo
  boo
  └── var
      └── lib
          └── use-ephemeral
              ├── a
              ├── b -> a
              └── stateful-paths

  $ tree boo
  boo
  ├── mnt
  │   └── state
  │       ├── a
  │       └── b -> a
  └── var
      └── lib
          └── use-ephemeral
              ├── a
              ├── b -> a
              └── stateful-paths

Change-Id: I60eb87f44b8b8d122cb4af472327d390e8ba4c23
Co-Author: alexisl@hp.com
Symlink to backup dir until ephemeral storage available

Currently, when you call `register-state-path --leave-symlink /a`, a
symlink is left at /a pointing to /mnt/state/a. However, /mnt/state
doesn't point at ephemeral storage until the instance has booted. So if
another element tries to write through the symlink, it goes wrong.

This patch defers moving content (and leaving a symlink if required) to the
backup dir until finalise.d runs.

Change-Id: Id5bc25965db1fdf27f2bcb947c518f6f4566fd2f
Co-Author: Nicholas Randon
Use keystone identity_uri instead of auth_*

Keystone middleware has deprecated the auth_host and friends in favor of
using identity_uri.

This was done in python-keystoneclient change:
I1f8f5064ea8028af60f167df9b97e215cdadba44

Change-Id: Ic43fc7656e63a890f25d0c8e9d2fed2213882b37
Merge "Use keystone identity_uri instead of auth_*"
Merge "Handle double path registration"
Merge "Symlink to backup dir until ephemeral storage available"