rfe12140: update metabang-bind

tests added    : no
tests run      : yes
performance    : modest improvements due to better declarations, etc.
release note   : none, internal change

Added declare ignorable to one defbinding-form macro expansion to
prevent unnecessary warnings.

Update with latest code from github

Lots of minor changes and improvements including:

added docstring support to :flet and :labels (reported by https://github.com/tpapp)

... and also fix the problem with non-list first elements for flet and labels

added Eric Schulte's lambda-bind

declare indent was a no-no (See https://github.com/gwkkwg/metabang-bind/issues/closed#issue/3)

Added unused declaration checks

added *unused-declarations-behavior*

Use `the` in :structure/rw to handle declarations

Fix the implicit generic definition and undefined function warnings.

docstring and userguide improvements

tweak declaration handling

Some declarations could lead to parsing errors and general bind
confusion. Corrected.

Change-Id: I2bfeefb8a2e820a6108d2b04cdbc4cdfc716477d
Reviewed-on: https://gerrit.franz.com:9080/2932
Reviewed-by: Ahmon Dancy <dancy@franz.com>
Reviewed-by: John O'Rourke <jor@franz.com>
Tested-by: Kevin Layer <layer@franz.com>
rfe12564: BIND and structure prefixes

  (bind (((:structure ag.sbqe::bindings-set- partials) set)))

used to expand to

  (let ((#:values-1341683 set))
    (declare (ignorable #:values-1341683))
    (let* ((partials (bindings-set-partials #:values-1341683)))))

Now it expands to

  (let ((#:values-1341683 set))
    (declare (ignorable #:values-1341683))
    (let* ((partials (ag.sbqe::bindings-set-partials #:values-1341683)))))

The ugliness is that it won't work with exported names and a single
colon if the prefix itself is not exported.

Change-Id: Id8519e08d5b58a54f30442b501364eb5982e3624
Reviewed-on: https://gerrit.franz.com:9080/3372
Reviewed-by: Ahmon Dancy <dancy@franz.com>
Reviewed-by: Gary Warren King <gwking@franz.com>
Reviewed-by: John O'Rourke <jor@franz.com>
Tested-by: Kevin Layer <layer@franz.com>
rfe12744: add dynamic-flet and dynamic-labels binding form to bind

tests added    : no
tests run      : no
performance    : perhaps putative programmer performance
release note   : none, internal change

Change-Id: I94ba84b47d0981d5c1723bbb1d6aad85c35aeca9
Reviewed-on: https://gerrit.franz.com:9080/3594
Reviewed-by: Ahmon Dancy <dancy@franz.com>
Reviewed-by: John O'Rourke <jor@franz.com>
Tested-by: Kevin Layer <layer@franz.com>
added docstring support to :flet and :labels

(reported by https://github.com/tpapp)
added Eric Schulte's lambda-bind
Added unused declaration checks

tests added    : yes
tests run      : yes
performance    : no change (maybe slight compile time increase)

<release note>
bind now checks for unused declarations.

Formerly, the expansion of a form like

    (bind:bind ((a 2) (b 3))
      (declare (type fixnum a b c) (optimize (speed 3)))
      a b)

would lose the (invalid) declaration (type fixnum c). This
declaration will now signal an error of type `bind-unused-declaration-error`.

</release note>
added *unused-declarations-behavior*

The new configuration variable `*unused-declarations-behavior*`
controls how `bind` behaves when it finds an unused declaration.
docstring and userguide improvements
added *unused-declarations-behavior*

The new configuration variable `*unused-declarations-behavior*`
controls how `bind` behaves when it finds an unused declaration.