Refactor some Lua string concatenations.

Using this regular expression, '\(\w*\)\s*=\s*\1\s*\.\.', found and
replaced many string concatenation-reassignments. These can cause
performance issues, since a new string gets allocated for each
reassignment. In many cases, the replacement is simply a single string,
wrapped across lines with the '\z' escape, which consumes a newline and
whitespace following it. In other cases, a table is used to hold the
substrings until the final string is built with a single table.concat
operation (same technique used in stdnse.strbuf).

Also, some string-building loops of this form:

s = ""
for i = 1, 100, 1 do
  s = s .. "\0"
end

were replaced with this much faster and cleaner version:

s = string.rep("\0", 100)
Correct Namp -> Nmap throughout.
Spelling fixes for Lua files

Mostly in documentation/comments, but a couple code bugs were caught,
including a call to stdnse.pirnt_debug and a mis-declared variable.
Add table_equal test to unittest.lua

Checks that 2 tables have the same length and list values.
New unicode.lua library. Supports utf-8 and UTF-16
Let json.lua use unicode.lua for utf8_enc
Fix off-by-one error in unicode.decode.

Would fail to decode the last character in a string.
New utility functions for transcoding to and from Windows Unicode

Windows uses UTF-16 little-endian. Since this is a common use case,
utility functions are provided such that this:

    x = unicode.utf16to8(v)

is equivalent to this:

    x = unicode.encode(unicode.decode(v, unicode.utf16_dec),
    unicode.utf8_enc)

but faster (fewer intermediate tables)
Use nsedebug.tostr in unittest to more clearly show how tests fail.
Use unicode library for NTLM in sasl.lua
Use unicode library for msrpc/smb
Fix format-string bug: ./nmap -sC --script-args '%n' -ddd
Better error reporting for smb-mbenum

Check for error 71 (0x47), which means the server is simply not a master
or backup browser and will not respond.

Also teardown the SMB session as far as it has been established, to be
nice.
Spellcheck on Nmap, Nsock, Nbase source files
Spellcheck for Ncat, Nping source files
Spellcheck on all Python files
Fix a bug introduced in r32728 in upnp.lua

When payload was changed to a single string instead of a strbuf object,
calls to strbuf.dump() were not removed.
Fix a crash in http-xssed when scanning an IP addr or range

http-xssed unconditionally used host.targetname, which is only set when
the target is specified as a name, not an IP address or range. Now we
prefer the targetname, but fall back to the reverse-dns name, and
finally to the IP address. Perhaps we should be more strict, if
xssed.com only allows domain names, for instance?
http-default-accounts should return nil, not false, on failure
Spellcheck on docs