Add surface creation

This PR introduces a preliminary method of creating a surface and attaching it to each monitor present.
Also here: Are the trailing underscores wanted?