Presale can be opened earlier than initially assigned date
There are 2 ways how presale opening date can be assigned. Either it's defined on initialization or the presale will start when `open()` function is executed.\\n```\\nif (\\_openDate != 0) {\\n    \\_setOpenDate(\\_openDate);\\n}\\n```\\n\\nThe problem is that even if `openDate` is assigned to some non-zero date, it can still be opened earlier by calling `open()` function.\\n```\\nfunction open() external auth(OPEN\\_ROLE) {\\n    require(state() == State.Pending, ERROR\\_INVALID\\_STATE);\\n\\n    \\_open();\\n}\\n```\\n
Require that `openDate` is not set (0) when someone manually calls the `open()` function.
```\\nif (\\_openDate != 0) {\\n    \\_setOpenDate(\\_openDate);\\n}\\n```\\n