Use integer when appropriate in autoscaling schema

The patch starts using integers in the autoscaling schema, removing the
needs to cast everywhere we use the properties in the code. We now
provide a backward compatible cast so we should be fine.

Change-Id: I828557dff4b08247b6b441bb3dff1b82153cf5cb
Use six.moves cStringIO instead of cStringIO

to keep Python 3.x compatibility, use six.moves.cStringIO to
replace StringIO

Change-Id: I900d9b90665c13770ae770d53ff67c2ae3df8b9d
Closes-Bug: #1280964
Enable usage of custom constraint in parameters

Add a new custom_constraint keyword type in HOT parameters to allow
validation of custom parameters.

blueprint param-constraints
Co-Authored-By: cedric.soulas@cloudwatt.com
Change-Id: Ic52475ea8a39541f7b1643038a2bcba15f0d7471
Revert config mocking to cfg.CONF.set_override

After moving to a different mocking strategy, it was pointed out that
the issue was actually a missing config group import, so partially
revert the change made under 9544b80 to simplify the test and add
the missing config group import.

Related-Bug: #1273126
Change-Id: I3a8b65ab16845be060d6df4d94ae08f2d7d8255a
Merge "Use integer when appropriate in autoscaling schema"
Merge "Enable usage of custom constraint in parameters"
Merge "Revert config mocking to cfg.CONF.set_override"
Merge "Use six.moves cStringIO instead of cStringIO"