* wesnoth-mode.el (wesnoth-preprocessor-regexp): 'ifn?def' and 'undef' must
have trailing space.
(wesnoth-mode-map): Added wesnoth-complete-preprocessor.
(wesnoth-element-closing, wesnoth-element-opening, wesnoth-element): Removed
constants.
(wesnoth-element-closing, wesnoth-element-opening, wesnoth-element): New
functions.
(wesnoth-element-completion): Fix `wesnoth-history-list' usage.
(wesnoth-parent-tag): Rewritten to be more efficient.
(wesnoth-indent-preprocessor): New function.
(wesnoth-indent-or-complete): Added preprocessor completion.
(wesnoth-with-fake-insert): New macro.
(wesnoth-complete-tag): Partially rewritten.
(wesnoth-insert-tag): Support inserting preprocessor pairs.
(wesnoth-nth-pair-position, wesnoth-navigate-element, wesnoth-wml-start-pos,
wesnoth-indent, wesnoth-determine-context, wesnoth-check-wml,
wesnoth-check-structure): Updated for new wesnoth-element functions.
(wesnoth-search-for-matching-tag): Only return non-nil when nesting is
correct. Updated for new wesnoth-element functions.
(wesnoth-jump-to-matching): Support matching #define..#enddef and
#ifn?def..#endif pairs.
(wesnoth-find-macro-definitions): Fix a bug where incorrect nesting can
cause nil openings to be paired with closings, causing errors elsewhere.