1. Create resource provider, resource class, traits.
2. Nested resource provider is supported in this patch.
3. According to the comments and reply in:
https://review.opendev.org/#/c/626057/10/cyborg/common/placement_client.py,
we should make a class to invoke Placement API. This has also been done in
this patch.
4. Convert cyborg/objects/driver_objects/driver_device.py file type from dos to
unix, to avoid ^M at the end of each line.
5. Get rid of legacy: ProviderTree class.
6. More info for driver developers: each driver should report resource class
and traits in driver_attribute field in order that cyborg-conductor can parse
it and report to placement.
7. update deployable rp_uuid field after getting rp_uuid from placement.
Change-Id: Ib8f682255d2ae60eb615c90de0a0f7c83d1af54d