Stockpile iterator.

Efficient way to operate on all items stored on a stockpile.
Doesn't currently check whether the items match the stockpile settings,
but does ignore empty containers assigned to the stockpile.
Switching autotrade to use StockpileIterator.

This should speed it up a bit, and prevents it from marking a stream of empty bins.
Convenience method to collect a vector from StockpileIterator.
Adding getStockpileContents to the Lua API.
Canonical way to find the stockpile by id.
Switching stockflow to the internal getStockpileContents.

This should speed it up over checking each space individually, but no longer counts spaces with empty assigned bins and barrels as empty.
Removing dead duplicate code.
Support for global onLoadWorld.init/onUnloadWorld.init scripts
Removed hackwish crash.

It's mostly a user error issue, but it is certainly not one that's hard to come across.
Add a variant of printall() that uses ipairs
Add hotkeys plugin
Documentation updates for the hotkeys plugin.
update exportlegends for DF40.x

Better code and also exports the new maps.  Extending to also export
site maps would be cool eventually.
enable UI plugins, add keybindings

The UI plugins are one of the major reasons for most players to use
dfhack, so they should be enabled by default.   The other additions seem
to be semi-standard keybindings for those functions
(http://redd.it/2fuaaf)
Add automelt plugin
Automelt documentation updates.
Moving the automelt hotkey next to autotrade.
Merging automelt hotkey into autotrade line when links intrude.

The new interface looks significantly different, but only when there are too many stockpile links to show the lines in their usual places.
The difference between bright green and grey should be obvious most of the time, right?
Close file opened in load_patch() on success

Fixes #327
Change search key from 's' to 'q' on unit/job lists

Avoids a conflict with the "suspend job" option (added in 0.40.12)