Fixes to compile with dmd 2.066

With the latest dmd 2.066 it was not compiling without this modifications.
Take a look at this example:

```d
auto a = Command(1, 2);
auto b = Command(1, 1);
assert(a == b); // passes
assert(a.toHash == b.toHash); // should pass but fails
```

The second assert fails because `toHash`, as implemented in this pull request, will use both the fields to calculate the hash. But according to `opCmp` two values of `Command` are equal if the `dst` fields are equal.