Issue 8509 - Appending base type to enum should not result in new enum type

http://d.puremagic.com/issues/show_bug.cgi?id=8509

This is an initial attempt for a fix.

But enums have more issues. A related example that still works:

```d
En a = En.a | En.b
```

Even if `type` in the `BinExp` class is explicitly set to `int` at the very end of `semantic`, the compiler somehow automagically assigns this type to an `En` type variable. `AssignExp` is probably to blame, but fixing that should probably be a separate pull request.