Fixed: Auto-complete definitions not populated

Auto-complete definitions were not being populated for new static
extenders.
Merge pull request #157 from monkey0506/develop-3.3.1

Added user control to edit enum flags (e.g., in a PropertyGrid)
Implemented Do...While

This implements an alternate form of a while loop, do...while. The full
syntax is:
do
{
[loop body
}
while(<condition>);
.gitignore: AGS.Native.dll
Merge pull request #156 from gurok/331_test_build_fixes

Fixed: Auto-complete definitions not populated
Merge pull request #158 from gurok/331_do_while

Do While Loops
An interface for getting a character's destination x/y

This adds Character::DestinationX and Character::DestinationY. Two
read-only properties that can be used to determine where a character is
heading while that character is moving. Returns the character's current
position if the character isn't moving. This seemed sensible to me.
Merge pull request #161 from gurok/bugtracker_get_walk_destination

Bugtracker -- Method to get current Character's destination
Engine: fixed reading threaded audio config option
Fixed pathfinding failure on straight lines

This fixes a bug that has been reported by several forum folks:
http://www.adventuregamestudio.co.uk/forums/index.php?topic=48529

Bug tracker here:
http://www.adventuregamestudio.co.uk/forums/index.php?issue=418.0

The pathfinding algorithm often fails to find a path when navigating in
a straight line from the player's current location. My thread above
contains a simple test case for replicating the problem:
http://www.adventuregamestudio.co.uk/forums/index.php?topic=50487

Whether or not it fails depends on the complexity of the walkable area
mask. If the walkable area mask is too complicated for the old
pathfinder, pathfinding fails.

The culprit is some code in __find_route that prevents AGS from using
the Dijkstra pathfinder when navigating along a vertical or horizontal
path. The consequences of using Dijkstra in these cases aren't clear,
but the current check for vertical and horizontal lines appears to make
a faulty assumption:

```
;            // don't use new algo on arrow key presses
```

I think this is bogus because:

Keyboard movement modules bundled with AGS use WalkStraight.
WalkStraight calls can_see_from, but does not use the main find_route
function. (It's possible that this is an old comment. In the past, there
might have been some code that called find_route from WalkStraight.)

This commit removes the old pathfinding code. can_see_from (essentially
a best-first search) gets called before all pathfinding and is the only
thing called for keyboard movement. There's no reason to keep the old
pathfinding code.
Merge pull request #160 from gurok/bugtracker_pathfinding_straight_lines

Engine: Pathfinding on horizontal/vertical/diagonal lines
Engine: fixed few exceptional cases on gfx mode initialization

Provided error handling in following situations:
* failure to create software driver
* user-requested gfx filter name is identical to existing one except for scaling number
* max supported resolution is smaller than base game size
Merge branch 'master' into develop-3.3.1
Common: simplified few Bitmap member functions

This also corrects Bitmap::CreateTransparent() behavior which caused problem when called with color_depth = 0.
This fixes crashing inventory window called by old InventoryScreen() script function.
Merge branch 'master' into develop-3.3.1
Engine: tidying main loop a bit

* renamed several functions to better reflect their meaning;
* regrouped some code;
* removed unused 'want_quit' variable
Engine: refactoring dialog options routine

Split show_dialog_options() into parts. Got rid of "goto" in the loop, implemented two distinct functions for drawing and updating instead.
Engine: refactoring old inventory screen routine

Split __actual_invscreen() into parts. Got rid of "goto" in the loop, implemented two distinct functions for drawing and updating instead.
Engine: managed user script object support
Script: Compiler support for managed user objects

Allows the 'new' operator to be used with managed structs to create new
user objects at runtime.