Capture and Provide Completion Direction

This is needed for clients to act intelligently in the presence of horizontal completions (in the context of deviated wells).

Note: I am open to other alternatives, but from a client point of view I'd like to be able to put the return value of
```
Completion::getDirection()
```
into a `switch`.