Add 'direction' server option to specify which graph directions should be loaded into memory (forward|backward|both) defaulting to 'both' of not provided.
Pass direction parameter to Graph constructor and load the directions into memory conditionally.
Pass 'both' direction wherever a graph was constructed. Not adding an overload which defaults to 'both', because having to explicitly set the value makes you asses which option fits best.
Throw exception, if the loaded direction doesn't match query, or transpose/symmetrize is called on a single loaded graph. If only single direction is loaded default the query param to chosen direction.
Add tests for forward/backward loaded directions.