I've been banging my head against this for hours now too and getting nowhere. It really is amazing how complicated some of this stuff appears to be--a simple example that works would help immensely. Sadly I don't have anything to add yet other than I can at least get libgpiod to compile and access the GPIOs (it's really slick) and even get a SWIG-based Python API wrapped around it. But assigning names and pin control state to pins with the device tree is proving to be extremely elusive with the BCM2835 module.
And to answer PhilE's question, check out this doc about the newer gpio interface: https://www.kernel.org/doc/Documentation/gpio/board.txt
It mentions you can use the device tree to assign a name to pins (when calling gpiod_get_index). However I can't for the life of me sort out how to actually get the BCM2835 device tree config to set this name.