Make relay be directory server without a DirPort

Child ticket of legacy/trac#15801 (moved).

In directory_permits_begindir_requests(), a relay doesn't accept BEGIN_DIR cell if the DirPort isn't set.

int
directory_permits_begindir_requests(const or_options_t *options)
{
  return options->BridgeRelay != 0 || options->DirPort_set;
}

Fixing this would make every relay being able to answer directory requests without a DirPort. Turns out, it's a part of proposal 237 so we should make those two happens and incidently helping with the global issue in the parent ticket.