Deleted the whole project in order to introduce the new, completely rewritten version.
Total rewrite.

The old design was 'rigid' (difficult to modify or extend) and the code was not covered by unit tests. The new design is intended to be much more flexible and widely covered by unit tests.

The features in this new code base match the features present in the old one, except that it does not raise a system notification when the timer goes off. This feature will be reintroduced further.

The most important change in the code design is that now there's an event bus component that other components use to subscribe to specific events like timer events or preferences changes. Any component can also publish events to the event bus.
Proper .gitignore, thanks to @oleksii-taran.
project.pbxproj:

- Removed local search paths.
- Copy OCMockito and OCHamcrest to the products directory during build.
Manually porting changes from the old version: import AppKit rather than Cocoa (changes made by @oleksii-taran).