text: Title: improve error message when missing product key
  Body: Given a `pipeline.yaml` like this:
  
  ```yaml
  tasks:
    - source: tasks.get
  ```
  
  If we execute `ploomber build`, It will fail with this message:
  
  ```
  Error: Error validating TaskSpec({'source': 'tasks.get', 'upstream': None}). Missing keys: 'product'
  ```
  
  It'd be better to suggest how to fix it:
  
  ```
  Error: Error validating TaskSpec({'source': 'tasks.get', 'upstream': None}). Missing keys: 'product'
  To fix it:
  
  - source: tasks.get
    product: products/data.csv
  ```
  
  Note that if this is a script/notebook, the suggested product should have the `nb` key:
  
  ```
  Error: Error validating TaskSpec({'source': 'tasks.get', 'upstream': None}). Missing keys: 'product'
  To fix it:
  
  - source: script.py
    product:
      nb: products/report.ipynb
      data: products/data.csv
  ```
  
  It is possible (but unlikely) that the DAGSpec is loaded from a dictionary (instead of a `.yaml`) file, in such case the output format of the suggestion should be a dict:
  
  ```python
  {'source': 'tasks.get', 'product': 'products/data.csv'}
  ```
  