Add mark-list-delete-mark to modify the current list of marks.

So I got myself tied up in trying to do a reference to the mark-list
which wasn't really required. However I suspect there is a related
reason as to why the first couple of marks can't be deleted. I've also
cleaned up the prefix and list of marks detection code. I've used the
Common Lisp macros for loops because the code looks neater.