Ensure use of normalized x-timestamp value in APIs

Certain REST APIs require the existence of the X-Timestamp
header. Since all of them use the almost identical sequence, we
refactor those blocks of code into one request helper method, removing
the duplication, and enhance that new method to report additional
error conditions (must be a normalized timestamp and must be
non-negative).

This change creates the request_timestamp() method in the
request_helpers module to unify the checking and validation of the
X-Timestamp header, returning it as a float. All the references to
X-Timestamp from headers have been modified to use this method.

Additional changes:

  Account Server:

    In DELETE, moved x-timestamp check before mount check so that we
    validate parameters before we touch file systems; this is
    currently the case for the POST method

    In PUT, we only verify the timestamp using the new
    request_timestamp method for the external API path, adding an
    explicit parameter check for the other headers for the internal
    "PUT account container" REST API.

  common/constraints.py:

    check_float() was removed, it is no longer used

Change-Id: Ifc1d1d3d82730b1581c08aeea6fc7745b3fc3fc9
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Verify X-Timestamp matches on-disk file name

Verify that the metadata X-Timestamp value is properly normalized
before storage in the file using that timestamp in its name, and that
the retrieved timestamp attribute matches the name of the file from
which it is read.

Change-Id: I66c49d69ad2906a73a92b8533411f303ccf9bbf5
Signed-off-by: Peter Portante <peter.portante@redhat.com>