Enhance: provide missing functionality for Map Room User Data

Adds lua commands:
* getAllRoomUserData(roomID): given a roomId number returns a lua table of
  all the user data.
* getRoomUserDataKeys(roomID): given a roomId number returns a lua list of
  all the keys of the user data for that room.
* clearRoomUserDataItem(roomID,key): given a roomId number and a user data
  key removes that key/value pair from the user data for that room. Returns
  true if data was removed, false if not and nil if the room does not exist
  for that roomId number.

Enhance existing commands:
* searchRoomUserData(key, value): given a string "key" and "value" returns
  a list of the roomIDs which contain that value for that key, now returns
  a sorted list of room numbers.
  Additionally extended so, in the absence of a second argument:
* searchRoomUserData(key): given a string "key" returns an ascending
  sorted list (lua table with monotonically incrementing integer keys from
  unity) of the unique values stored against that key in all rooms.

Also:
  Correct (and reformat to revised Mudlet "standard") error messages for
  setRoomUserData() {they referred to getRoomUserData() instead which was
  confusing!} and reformat getRoomUserData() error messages as well.

ALL OF THESE FUNCTIONS:
A) Return messages that can be internationalised, and will return them as
   Utf-8 encoded strings to the Lua subsystem.
B) Accept and pass Utf-8 encoded strings to and from the Lua subsystem, so
   non-ASCII text can be used both as identifiers (keys) for room user data
   items and the data (values) stored under those keys.

The searchRoomUserData functions are linear so may not be particularly fast
for large maps - the user is encouraged to develop/use their own index
systems rather than directly utilise the map room user data if they wish to
optimise actions that requires access across all or a sizeable part of a
large map.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
Enhance: lua searchRoom() search, allow non-ASCII room names

Update getRoomName(), setRoomName() and searcgRoom() to handle non-ASCII
room name data.  The strings passed to and from the lua subsystem now use
Utf-8 which is a super-set of (backwards compatible with) ASCII.

Also, the original lua command when invoked as searchRoom("string") did a
case insensitive room name search and used the supplied string for a
partial search of all room names in the map.  One or two optional Boolean
arguments can be now supplement the supplied search string for the
room-name, the first, if true, makes the search case sensitive and the
second, requires the string to be a complete match rather than a sub-string
of the room name to be found.  Both of these arguments can make it easier
to find a specific room.

In the same manner as another recent commit addressing map room user data
the error messages from these three lua commands have been made capable of
being translated by the Qt internationalisation system, and the resultant
texts can be passed as utf-8 data to the lua system and to user with
non-ASCII characters.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
BugFix: close button on map custom exit dialog not cancelling line drawing

As per http://bugs.launchpad.net/mudlet/+bug/1369041 the built-in dialog
button that some OS/Window systems provide did close the dialog but did not
cancel the custom line drawing process.  This fixes the matter by
connecting the reject() signal that the button produces to code to clean
up.

During debugging this it became clear that: if the custom line dialog was
being displayed but before the user had selected the exit to draw the line
for, it was possible to click on the map and add points to create a line;
this would be for a custom line with an Empty exit name which should not be
permitted.  To prevent this a flag "mDialogLock" was added to the class to
prevent the mouse events that would draw or modify a custom line from
proceeding until the custom line dialog had been used or cancelled.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
BugFix: Prevent colouring of room exit number tool-tips on room exit dialog

As referred to in https://bugs.launchpad.net/mudlet/+bug/1369040 it has
been found that colouration applied to the room numbers displayed in the
map room exits dialog to indicate their validity was being passed onto
the tool-tips for those elements. The cure is to explicitly apply the
colouration to ONLY the QLineEdits involved.

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
Fixup: Remove useless sort operation

Sorting operation is ineffective in the manner it was being used, Lua does
not operate in the way that I had assumed!

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
Merge pull request #212 from SlySven/enhanceAndAdd_luaMapUserDataFunctions

Enhance: provide missing functionality for Map Room User Data
Merge pull request #213 from SlySven/enhance_luaRoomNameFunctions

Enhance: lua searchRoom() search, allow non-ASCII room names
Merge pull request #215 from SlySven/fix_ExitDialogButtonOnCustomExitLineDialog

BugFix: close button on map custom exit dialog not cancelling line drawi...
Merge pull request #216 from SlySven/fix_RoomExitsDialogColouredToolTips

BugFix: Prevent colouring of exit number tool-tips on room exit dialog