Fix bug that made droids produced by scripts get human player's upgrades.
Merge remote-tracking branch 'origin/bugfixes'

Conflicts:
	src/qtscriptfuncs.cpp
	src/scriptfuncs.cpp
allyresearch: Simplify logic for display of ally research.
allyresearch: Keep showing allied research even while facilities are upgraded.
allyresearch: Also show in the bottom menu, if allies are researching the same as us.
Fix compile error on *BSD systems.

Patch by brad@comstyle.com.
Fixes ticket:3845.
Update autorevision with latest, portable, version from git
qtscript: Allow addLabel() to work on all label types. Speed up some object lookups with type info.
qtscript: componentAvailable() can now only take a single parameter containing the
component name - specifying the component type is now deprecated.
qtscript: Change group insertions to remove existing group membership
instead of ignoring insertion if already member of a group, to make it
work the same way as in 3.1. This closes ticket:3902.
qtscript: When asking for ALLIES or ENEMIES in enumRange() and enumArea(),
do not include features in the results. This closes ticket:3899.
Update the mac build's png to 1.5.14.
qtscript: Reduce soft max limit for javascript invocations to 20ms (down from 50ms).
qtscript: Add two new functions related to transporter handling in campaign,
startTransporterEntry(x, y, player) and setTransporterExit(x,y, player).
widgets: Cleanup, replace C-style virtual functions calls with native C++ virtual functions.
qtscript: Rename label() to getObject(), keeping an alias in place for label()
for compatibility. Also adding getObject(x, y) for getting a structure or
feature at given position, and getObject(type, player, id) for getting an object
by its unique ID. This latter form deprecates hackGetObj(). Adds some documentation
for the GROUP label type. Finally makes super cyborgs get DROID_CYBORG droid type
instead of DROID_WEAPON.
Refactor IMD loading code to prepare for WZM format.
Misc cleanup forward ported for intdisplay.cpp
widgets: Queue up clicks, such that all mouse clicks are processed.

The widgRunScreen() still only returns one value, so the effect of some mouse clicks is still lost, but a few less
mouse clicks should be randomly thrown away, now. Only the widget system currently reads the click queue.

Extending KEY_PRESSED, KEY_RELEASED and KEY_PRESSRELEASE with KEY_PRESSRELEASEPRESSRELEASEPRESSPRESSRELEASE didn't
seem like the optimal approach to fix the issue.
widgets: Cleanup, replace remnants of C-style virtual functions calls with native C++ virtual functions.