spacemanager: Clear path when file is stored and make path unique

The only purpose of the path column in space manager is to allocate
space to a file before it is actually created in the name space. Once
the file is stored, the PNFS ID identifies the file. At this
point the path is unnecessary bloat in the database, which - if the file
is renamed or moved (as recently happened in Atlas) - may even be
different from the actual path.

This patch changes the use of the path field such that it is always
cleared once the file is marked as stored. The field is marked as a
unique field, which means that lookup code becomes simpler. The need
for explicit indexes disappears (unique fields have an implicit index,
as the combined index on path and state is no longer necessary as the
code can load the record by the unique path and check the state in
the business logic).

More business logic has been moved out of the data access layer, thanks
to the uniquenes of the path.

The error message for duplicate paths (the infamous "Already have 1
record(s)" message has been replaced with a more descriptive message
(that the file is locked by another transfer).

Target: trunk
Require-notes: yes
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/6467/