Fix bug in LogReader which would duplicate lines

* Improve and fix code for `update()` method:
  * Replace iterator-`while`-loops with `for`-loops
  * Move adding of new lines to `log` outside of inner loop. This would
    previously add new lines multiple times if there was more than one
    item in `forbiddenKeys`
* Inline some variables in `readFile()` to improve code readability
* Make `line` attribute private and initialize it explicitly
* Move `ArrayList` initialization to attribute declaration
Add superclass for file choosers
Fix dirty implementation in menu bar factory
Combine menu bar factory classes

Combine JMenuBarFactory and MainFrameMenuBarFactory, since there are no other
descendent classes of JMenuBarFactory. Done by pushing all elements of
JMenuBarFactory into MainFrameMenuBarFactory, removing all `abstract`
qualifiers and combining usages of super methods.
Move item-command mapping into addMenuItem()

Create a secondary version of `addMenuItem()` (overloading the existing one)
which includes adding the item's command to the `EventCommandLookUp` map, which
is the default use-case.
This reduces code-duplication a bit and makes it more readable at the same
time.
The old, overloaded version of the method persists, since there are some
non-default usages, especially in regards to radio and check boxes.
Merge branch 'fix/JMenuBarFactory' of https://github.com/nevik/openDLX into nevik-fix/JMenuBarFactory