Added .gitignore (at least for the Linux side of the source tree)
Added explicit_bzero() as safe memset()

Calls to memset could be optimized away when they are at the end of the
variable lifetime, because the compiler knows that memset only modifies a
value of a variable and has no side-effects. So, if the variable is not
used anymore, the compiler might get rid of the "useless" memset.

Unfortunately, we really want this piece of memory zeroed out, because
otherwise it would stay in physical RAM. This is not part of the C
standard, so the compiler does not know that. So we have to convince the
compiler that optimizing these calls is a really bad idea which we
achieve with the volatile function pointer.

This commit introduced explicit_bzero() and replaces all calls to
memset() with the purpose of cleaning memory with this function. As a
defensive programming measure, I did this regardless whether the call
would have been optimized away or not.
Corrected scoping issues

* Made sure that the function pointer to memset() may only be used from
  within explicit_bzero().
Changed explicit_bzero() to memset_secure()

While I don't think that a non-optimizable memset() has other useful
applications rather than scrubbing memory, I added them by suggestion
of Paul.

I replaced all calls to explicit_bzero() but kept all other non-critical
calls to memset().
Added copyright header to util.c
Merge branch 'master' of https://github.com/yayachiken/AESCrypt into bleeding-edge

Pulls the changes for secure memory wipe from yayachiken's repo into mine and merges with the fixed gui.