Add promoted unicode and callable validators.

Fix a bug in dict validation.
Add promoted unicode and callable validator enum values
Add a do_validate and do_default method. Make index and name more safe.

This adds the ability to manually run the default and validation passes
in the C++ code. This enables the ability to delegate operations to an
internal member held in Python code.

This also makes the member index and name attributes more safe by making
the setters methods instead of properties (i.e. they can be overridden).
Fix multiple inheritance by resolving memory layout conflicts.
Add some more member features.

This adds TypedEvent, Callable and Instance arguments. It also fixes
a bug in tuple validation.
Update the api file.