Merge branch 'next'

* next: (55 commits)
  fix, PEBKAC, prepend ~ char in collect psetter when passed the :as property
  minor, provide #'filter (using echs_make_filtstrm()) to filter a stream through a filt object
  minor, provide scm_is_echs_filt and SCM_VALIDATE_ECHS_FILT
  minor, rewrite #'stream in terms of #'make-stream when more than one arg is given
  minor, provide scm_is_echs_strm and SCM_VALIDATE_ECHS_STRM
  minor, provide #'make-stream to return a sum stream from primitive streams
  minor, in #'stream merge all given arguments into the sum-stream
  fix, PEBKAC, actually close fltdef objects upon collector free_echs_mod()
  minor, provide #'stream to materialise one stream from guile
  minor, migrate in-lieu filter to property sets
  minor, pass on all keyword args given to #'load-filt via echs_filter_pset()
  fix, PEBKAC, open filters through echs_open_fltdef()
  chore, adapt collect filter to new filter_pset_s layout
  minor, adapt filter_pset_s struct again, introduce memory and make all slots const
  minor, provide echs_fltdef_psetter() to obtain the psetter directly
  minor, provide echs_fltdef_pset() wrapper to access the psetter through a fltdef_t object
  minor, rewrite #'deffilt macro to pass on all keywords
  chore, turn :from and :args into normal keywords, as opposed to global ones
  minor, migrate collect filter to property sets
  chore, move echs_filter_pset() to echse.h so DSOs can implement it
  ...