Enable graph creators to assign individual edge orientation

This fixes #27. See the discussion there for a more detailed explanation. The newly added unit tests cover every possible configuration, so we can be pretty sure that it functions correctly.