Http 400 when project enabled is not a boolean

Having enabled="true" in json data when updating tenant will produce 500

When updating a project, no type check was performed on the enabled
attribute. Therefore, if enabled value in JSON/XML is not a boolean but
a string, keystone responds with an incorrect Http 500 error code and
the stacktrace.

The change introduces a type validation of the enabled attribute at
identity manager. If the type is not a boolean, keystone now returns an
appropriate Http 400 error code with a message pointing a bad format for
the attribute.

Test cases have been added to file test_backend and test_content_types
for testing the case when enabled attribute is a string or int when
updating project.

Fixes bug #1191384

Change-Id: I86dd7e71d4bac1e3fd6fcabaa1a2136a47722e5f
Merge "Http 400 when project enabled is not a boolean"