Fixing bug in `eureject`.

When `-k 0` the `retained_samples` were never initialized, but were
later being accessed during `write_summary` method. This commit
fixes this problem. Now, the `retained_samples` are always
initiated at the start of `eureject_main` to accommodate
writing a summary of the run even when the reject step is skipped.

This required a change in how `sample_array` instances are initialized.
The header is now initialized during `sample_array_init`, so that
the `sample_array` can be freed, even if it is not used.