build_spool_path() now takes a spool_type argument

We need to write two different types of data, "points" and "contents".
There's no sense duplicating all that code for a few bytes worth of
change, so we get some cheap parameterisation instead.
marquise_ctx now has a spool_path for points and contents
Update build_spool_path() test to deal with all the changes

The test's assumptions are now fixed (no more double-slashes in the
path) and rewritten in large parts to be sane. Why were we doing length
checks? Why were we rolling our own char-by-char string comparison?
strcmp can do that for us just fine, doubly so when we have a guaranteed
length boundary to pass to strncmp.