Don't stat the message if we don't have an entry in the map table.

Prevents unnecessary stating when we have *some* change in the map
table for the collection, but the current change set has more than
just that one change.
Fetch all the matching map entries at once.

Sacrifice a small additional loop in code to get a single DB query.
parse error
Revert "parse error"

This reverts commit 56d76e002a34971d1ea35e08034dda7f40d314a4.
Revert "Fetch all the matching map entries at once."

This reverts commit 6442f09f1e29bf0d685f2ca19988ef008f014414.

Will have to rethink this while more awake. Can't query all
changes like this since they may be of different types.
Released Horde_Mongo-1.0.2
Development mode for Horde_Mongo-1.0.3
Need to get a list of syncronized calendars to softdelete.

Slight hack to get around the data not being available via Kronolith 4's
public API. Fixes Bug: 12765.
BFN
Load all matching map entries for available changes at once.

Don't hit the DB for each change, we already have all the change uids,
so fetch all the possible map entries at once.
Improve logic, exit early if we don't have a change timestamp.
Only query once for mailmap entries as well.

Probably some optimization to be done here, but these
change arrays are typically only 1 or 2 elements, so
not really an issue.
Changes
Fix changelog ordering
application/unknown may appear for PDF attachments, so do MIME type checking if this occurs
Move useful scripts to bin directory
Add horde-run-cmd utility
[mms] Composer file is now generated/updated before releasing.
Add composer.json to packages/libraries
typo