text: Title: Add ResultMixin implementations for Dask native types
  Body: **Is your feature request related to a problem? Please describe.**
  
  We should implement useful implementations of:
  ```python
  
  class ResultMixin(object):
      """Base class housing the static function.
  
      Why a static function? That's because certain frameworks can only pickle a static function, not an entire
      object.
      """
      @staticmethod
      @abc.abstractmethod
      def build_result(**outputs: typing.Dict[str, typing.Any]) -> typing.Any:
          """This function builds the result given the computed values."""
          pass
  ```
  for use with Dask. E.g. returning a Dask native array, dataframe, bag, etc. Currently the default is to return a *pandas dataframe*.
  
  See the `build_result` function in `DaskGraphAdapter` for a reference point on how it could be used.
  
  **Describe the solution you'd like**
  These should probably be placed in the `h_dask.py` module for now. Otherwise open to naming.
  
  Alternatively, we could include more options in `DaskGraphAdapter`. Open to thinking what way is the most user friendly solution going forward.
  
  **Additional context**
  The addition of these ResultMixins should enable a user who is using Dask, to not have to implement their own version,
  instead they can use the ones that come with Hamilton.
  