Write marquise_new_source()
Finish implementing marquise_free_source()

Valgrind says that I haven't forgetting to free() anything now. Also
added a check that source!=NULL, as may be the case if the initial
allocation failed, and you then try to free(source) your way out.
Note to self on the next thing to implement