Use in contract from base class if not specified in derived

In case when in contract is not specified in the derived class,
and base class does specify a contract, base contract should
not be silently ignored:

```
class Base
{
    void foo()
    in
    {
        assert(false);
    }
    body
    {

    }
}

class Derived: Base
{
    override void foo()
    {
    }
}

void main()
{
    auto o = new Derived();
    o.foo(); // Should fail
}

```

Old behaviour can be brought back with `in{}` in `Derived.foo`.

See https://issues.dlang.org/show_bug.cgi?id=6856
Please add this test to testcontracts.d. Having each test in its own file makes the test suite run too slowly.