Double evaluation in defsketch custom bindings
### Intro
Hi!
As mentioned before in this issue(https://github.com/vydd/sketch/issues/33), initforms of custom bindings in `defsketch` macro are evaluated twice. (@inconvergent wrote that it seemed to be [fixed](https://github.com/vydd/sketch/issues/33#issuecomment-983601847). Unfortunately, I still observe this issue using both quicklisp version and this repo version.)

### Examples
Here is my simple example:
```common-lisp
(ql:quickload :sketch)
(use-package :sketch)

(defparameter *result* ())

(defsketch double-evaluation ((hi (push "world" *result*)))
  (text (format nil "~a" *result*) 100 100))

(make-instance 'double-evaluation)
```
This will display a text `(world world)` instead of just `(world)`.

As a more complicated example - it seems that [Qelt](https://github.com/vydd/qelt) doesn't run properly with current version of sketch because of that.

### Solution?
I think that I have found when this issue was introduced - https://github.com/vydd/sketch/commit/19fe20502d26fc75752e710dfe5106ed13345c5a:
implementation of `make-custom-slots-setf` function changed from
```common-lisp
(defun make-custom-slots-setf (sketch bindings)
  `(setf ,@(mapcan (lambda (binding)
                     `((,(binding-accessor sketch binding) instance) ,(car binding)))
                   bindings)))
```
to
```common-lisp
(defun make-custom-slots-setf (sketch bindings)
  `(setf ,@(mapcan (lambda (binding)
                     `((slot-value instance ',(car binding)) ,(cadr binding)))
                   bindings)))
```

Notice that second argument changed from `(car binding)`, which refers to the binding name, to `(cadr binding)`, which refers to the binding initform.

So, the [patch](https://gist.github.com/death/73f001b54d23c7ba83f03c9ade7159ae) proposed in this comment (https://github.com/vydd/sketch/issues/33#issuecomment-627644036) should be the solution to this issue.