Final changes for PYTHON-552

- Use default roles when no roles are provided (MongoDB 2.5.3+).
- DeprecationWarning when using read_only or not passing roles (MongoDB 2.5.3+).
- Check for error code 59 in remove_user.
- Roles and read_only are not compatible.
- TypeError -> ValueError for '' as password.
- Better validation all around.