big overhaul, working GUI

many changes committed;
this update only covers updated code;
next update plans:
- documented code (comment code blocks)
- factory for gui components
- Logging actions to compressed file
- Error handling (covering exceptions and giving those exceptions
[sometimes] as feedback to user)
future plans
- process byte blocks processed and use as progress meter
- remember last path used/opened, instead of starting at user home dir
every time
- handle bigger files by not writing everything from the cipher to a
long string-like object (hint: cipheroutputstream)