Fixed permissions check when users are not in the same group.

The check if users are in the same group erroneously returned true even
if they were not. This caused the actual permission check to fail and
thus prevent editing.
Corrected project list when filtering by customers. (closes #228)
Make sure all keys are set correctly. (refs #237)
Fix outdated pct_comment_flag user preference. (refs #237)
Fixed db_restore.php to restore tables with keys etc.
Fixed failed update in MySQL strict mode.

The strict mode prevents NULL columns to be changed into another default
value. To solve this all columns having NULL be updated to the new
default value prior to changing the table structure. (closes #243)
Merge pull request #244 from ServiusHack/issue/243

Fixed failed update in MySQL strict mode.
code cleaup
added project class header
Merge pull request #252 from kevinpapst/invoice/2

Code cleanup
Merge pull request #260 from ServiusHack/issue/edit-user-otherGroup

Fixed permissions check when users are not in the same group.
Fixed showing activity name in export extension.
Merge pull request #265 from ServiusHack/tasks-in-export

Fixed showing activity name in export extension.
Fixed roundValue not containing decimal.
Redirect to installer when autoconf.php is missing. (closes #268)

Up until now an error message about the missing file was shown to the
user. In @4bc1c11 that file was removed from the repository thus always
giving an error to new users.

Instead of showing an error the user could immediately be redirected to
the installer. A missing autoconf.php now most likely means a plain new
installation.
Merge pull request #269 from ServiusHack/wrong-round-invoice

Fixed roundValue not containing decimal.
Merge pull request #270 from ServiusHack/require-missing-autoconf

Redirect to installer when autoconf.php is missing. (closes #268)
Show error message if deleting group failed. (closes #263)
Merge pull request #275 from ServiusHack/issue/263

Show error message if deleting group failed. (closes #263)
Don't divide by zero when rounding in invoice.

It could happen that a duration is rounded to zero for an invoice.
In that case a DivisionByZero exception was thrown.

The offending line tries to calculate a rate so that this rate
multiiplied by th
e rounded hours gives the amount of the entry.
We just leave the rate as it is, if the rounded hour is zero.

closes #267
Merge pull request #276 from ServiusHack/issue/267

Don't divide by zero when rounding in invoice.