Attempt to fix linking issues
I really really hate you microsoft. More windows sdk cmake poke
Warning fix
Merge branch 'master' of https://github.com/LightDrake/SingularityViewer
Fix a Clang error
Unbreak OSX Make File builds
Merge branch 'master' of https://github.com/LightDrake/SingularityViewer
Merge remote-tracking branch 'singu/master'
Merge remote-tracking branch 'singu/master'
Make global strerr() functions in llfile.cpp static member functions of LLFile.

This is the cleanest way to make them available to the rest of the
viewer as exported functions.

This change is needed for / use by AIMultiGrid.
Merged master
At the request of LL, append more info to channel string sent to the login server
Send versio number bare, without channel name, as V3 does
Fix slight breakage in the osx cmake
In preparation to release, change defalt for crash reporting to 'Ask'
Cache the lookup of the sim access level.

Being part of the state line, it is called every frame, causing a
translation lookup every frame.
Make #includes in llcommon header files more complete.

These includes are needed. The current code includes them
in .cpp files *before* including these include files, but
that is not very clean, and not useful.

Actually including what a header file needs makes it more
clear what it drags in, it doesn't drag in more then before.
It also allows to include these headers without having to
includes needed for the included header file in a specific
order, in every .cpp file.
Minor LLMD5 extension and cleanup.

* Add LLMD5::clone(unsigned char const*), the inverse of LLMD5::raw_digest.
* Add LLMD5::clone(std::string const&), the inverse of LLMD5::hex_digest.
* Add LLMD5::isFinalized(), returns true if the object is finalized.
* Turn all binary operators into inline friends in the class.
* Fix operator<< to take a LLMD5 const& instead of a LLMD5&.

These changes are needed for / used by AIMultiGrid.
Removed LLXMLNode::writeHeaderToFile

Isn't used. This header is written else where already,
and will be written from now on (also) by AIXML*, which
will be committed next.
Add THROW_[MF]ALERT[EC] (AIArgs, AIAlert, AIAlertCode, AIAlertPrefix, AIAlertLine)

A system to throw errors that allow for easy error reporting to the user
by showing a translated pop-up alert box with the error message.

The messages use strings.xml for translation and allow the usual
replacement args (ie [FILE] is replaced with a filename).

The exceptions can be cascaded, by adding more (translated) text
when caught and then re-throwing the result.

Macros are being used to support adding a function name prefix
to a message of the current function that the exception is thrown
from.

The syntax is:

  <macro>(<line>);		to show 'line'
  <macro>(<alert>, <line>);	to append 'line' to a caught alert.
  <macro>(<line>, <alert>);	to prepend 'line' to a caught alert.

  where <macro> is one of:
  THROW_ALERT, THROW_MALERT, THROW_FALERT, THROW_FMALERT,
  THROW_ALERTE, THROW_MALERTE, THROW_FALERTE, THROW_FMALERTE, where
  M = modal, F = Function name.
  and where <line> is one of:

  <xmldesc>
  <xmldesc>, AIArgs<args>

  where <xmldesc> is a string literal that will be looked up
  in strings.xml, and <args> is:

  (<key>, <replacement>)[<args>]

  There are more variations of the macros to throw an arbitrary
  class (append _CLASS), include an int code (append C) or
  to store the current errno as code (append E).

  For example, THROW_MALERTC(code, ...), or THROW_FALERT_CLASS(Foobar, ...),
  where the ... is the same as for the macros above.

Documentation and example usage has been added to aialert.h.
Add AIFile - LLFile but throws AIAlertCode exceptions on error.

The code is the current errno.