Move and refactor ImmutableMixin & EnumMixin to rally.utils

First of all these two mixins will be used not only for rally.consts
So move it to rally.utils

Improve ImmutableMixin, to be able to set parameters in __init__() method

Relax EnumMixin consts type, were supported only string values

Add tests for ImnutableMixin and EnumMixin

Change-Id: I52a0d3810c62855024bc3da34db1134e8ebde149