Developer Mode

See the discussion here: https://github.com/clintbellanger/flare-engine/issues/1134

To make use of the developer mode:

1. Turn on "Developer Mode" on the Interface tab in the Configuration menu.
2. Press F5 (can be remapped) when in game to open the developer console.

In the process, I've refactored a few things in these commits:
* 131125d - C++ containers are used for WidgetListBox. This means list size doesn't need to be specified during construction. This was done when I was experimenting with a more graphical developer menu (which was scrapped), but the changes here are still good.
* 10503d2 - Moved PowerManager::targetNeighbor to MapCollision::get_random_neighbor. This function can have several uses outside of powers, so this one just made sense.
* d848b3f - Created WidgetLog. This is essentially a cleaned up version of the code that was in MenuLog. Only now, it can be used in both MenuLog and MenuDevConsole.
* e661dc1 - This removes the 20 character limit for WidgetInput (although it's still possible to set a limit if needed). The pixel width of the text is calculated one character at a time. This a little inaccurate because of kerning, but it works well enough in practice and is definitely and improvement.