Create, update and delete hierarchical projects

Changes at basic operations related to projects
were modified to handle projects hierarchy.

This changes includes:
- Create and update projects with parent_project_id
  field
- Avoid deleting projects that are not leaf in the
  hierarchy
- Deny the update of a project's parent
- Limit the max depth of a tree branch (in the
  hierarchy)

Co-Authored-By: Henrique Truta <henrique@lsd.ufcg.edu.br>
Co-Authored-By: Rodrigo Duarte <rodrigods@lsd.ufcg.edu.br>
Co-Authored-By: Raildo Mascena <raildo@lsd.ufcg.edu.br>
Co-Authored-By: Samuel de Medeiros Queiroz <samuel@lsd.ufcg.edu.br>
Co-Authored-By: Thiago Paiva Brito <thiagop@lsd.ufcg.edu.br>

Change-Id: Ia8ae4c1d8d1e7e591a272928af0dfd17da4047c1
Implements: blueprint hierarchical-multitenancy
Merge "Create, update and delete hierarchical projects"