Discovery Revamp (#642)
Discovery Revamp (#642)

* Revamp of discovery

- Restructued things so that it didn't feel like we were repeating the
  definition of the attributes. For example, we now just define Service
  and its attributes once and then simply point back to that, and its
  serialization, from the Query section
- got rid of "provider" in the model. Technically, that's an impl detail
  and consumers should not care what generated the CE - it's things like
  the source and service that they'll care about (or even know about)
- introduced the term "Discovery Endpoint" as the "thing" that implements
  the spec
- Added a JSON encoding definition
- Modified the query stuff so that all data is returned in one shot.
  I believe the current spec implied that people would need to do one
  query to get the list of Types of interest and then another one to pull
  back the details of each Service. I think it's more natural to do it all
  in one. If this is too large then we should consider query flags to
  indicate if people want the deep result-set or an shallow result-set.
- I made Service and Type have a non-human friendly main keys since names
  will change over time but these keys need to be static and therefore
  machine usable. `description` can be used for human readable names.

Probably other minor things that I can't remember. I basically just
went from top to bottom touching stuff that felt odd as I was reading
but I think it's closer now to being something that someone could
sit down and implement w/o too many gaps.

Signed-off-by: Doug Davis <ff3bde741799c0eff815b83a54eda3fc494df54f@us.ibm.com>

* add 'name' and 'url'

Signed-off-by: Doug Davis <ff3bde741799c0eff815b83a54eda3fc494df54f@us.ibm.com>

* typos

Signed-off-by: Doug Davis <ff3bde741799c0eff815b83a54eda3fc494df54f@us.ibm.com>

* klaus's review

Signed-off-by: Doug Davis <ff3bde741799c0eff815b83a54eda3fc494df54f@us.ibm.com>
cloudevents/spec