Unable to create new meta key with string type
Motivation
----------
If one attempts to make a DID key with a string value type:
```python
client.add_key(
    key="asdf",
    key_type="COLLECTION",
    value_type=str,
    value_regexp="\\w{,50}",
)
```
then an exception is raised:
```
rucio.common.exception.UnsupportedValueType: Unsupported type for the value. List of supported types: (<type 'float'>, <type 'int'>, (<type 'basestring'>,)).
Details: The type '<type 'str'>' is not supported for values!
```

Proposal
---------
This is due to https://github.com/rucio/rucio/blob/master/lib/rucio/common/constraints.py#L25 where `six.string_types` is a tuple and should be added rather than nested. But that is not enough, as depending on whether you are in python2 or python3, different types will be valid. Really this should be an enum.

Note: tested in v1.22.2
diff --git a/lib/rucio/common/constraints.py b/lib/rucio/common/constraints.py
index 7ca02e470..95988f5bc 100644
--- a/lib/rucio/common/constraints.py
+++ b/lib/rucio/common/constraints.py
@@ -1,4 +1,4 @@
-# Copyright 2012-2018 CERN for the benefit of the ATLAS collaboration.
+# Copyright 2012-2020 CERN for the benefit of the ATLAS collaboration.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -16,11 +16,12 @@
 # - Vincent Garonne <vgaronne@gmail.com>, 2012-2018
 # - Frank Berghaus <frank.berghaus@cern.ch>, 2018
 # - Hannes Hansen <hannes.jakob.hansen@cern.ch>, 2019
+# - Martin Barisits <martin.barisits@cern.ch>, 2020
 #
 # PY3K COMPATIBLE
 
 from six import string_types
 
 # List of authorized value types for key
-AUTHORIZED_VALUE_TYPES = (float, int, string_types)
+AUTHORIZED_VALUE_TYPES = (float, int) + string_types
 STRING_TYPES = string_types
['lib/rucio/common/constraints.py']