[#65315174] Reorganize openstudio for versioning of files

Executables, so's and shared folders are versioned to allow for multiple
version deployments while keeping the expected layout for unix
deployments.
[#65315174] Place ruby libs in shared location in linux

Ruby libs now install into a (somewhat) self contained location at
<prefix>/lib/openstudio-<openstudioversion>/ruby/<rubyversion>/

Symlinks are installed which point from
<prefix>/lib/ruby/site_ruby/<rubyversion>/ to the installed location.
This allows for easy placement of additional ruby installations if
needed and makes the ruby .so finding easier to accomplish.

I also updated the ruby PATH to be smart about symlinks and point to the
actual location instead of the symlink location.

I have one further test to make, but I think this is ready. @axelstudios
might need to review it because of the linux folder layout changes. I
tried to keep other platforms the same that they were because they
already make self contained installs of ruby.

@nllong
Fix relative path access to installed ruby

[#65315174]
MacOS doesn't like version numbers on bundles

But that's OK, since the install folder is versioned anyhow, but this means we
cannot fix the multiple-install issue on macos as Alex was hoping.

@axelstudios

It's possible that versioning only the executables would work and would gain
us the fix we are hoping for.
Merge remote-tracking branch 'origin/develop' into 65315174-UpdateForChefDeployment
[#65315174] Update superbuild swig, necessary for contam on macos
Fix various compiler warnings

This fixes various compiler warnings output by Clang 5.1.

Some are simple unused variables, which if need to be used in the
future will have to be added again.

I also added -Wno-dynamic-class-memaccess compile flag for swig targets
to get rid of a clang specific warning (annoying warning) [1]. I don’t
think this is something to worry about from my research but I also can
not figure out a way to fix the warning, other than to suppress it.

For the changes in ServiceWaterGridItems, the compiler was implicitly
converting the double’s to int’s since the various Qt functions use int
parameters. This just changes the doubles to the implicitly converted
int, explicitly.

GeometryTranslator was only applying the ’not’ to the left hand side of
the equation [2]. This worked because objects.size() for
GlobalGeometryRules and Building should be 0 or 1 only since they are
unique objects. Thus the ’not’ operator would flip these and compare to
1. This just changes the comparison to != which can deal with size() >
1 (but shouldn’t ever happen)

[1] - Warning
~/osbuilds/develop_branch/OpenStudioCore-prefix/src/OpenStudioCore-build
/src/utilities/ruby_OpenStudioUtilitiesDocument_wrap.cxx:3267:9:
warning:
      destination for this 'memset' call is a pointer to dynamic class
      'openstudio::DocumentElement'; vtable pointer will be overwritten
      [-Wdynamic-class-memaccess]
        memset(v_def,0,sizeof(Type));
        ~~~~~~ ^
~/osbuilds/develop_branch/OpenStudioCore-prefix/src/OpenStudioCore-build
/src/utilities/ruby_OpenStudioUtilitiesDocument_wrap.cxx:3293:66: note:
      in instantiation of member function
      'swig::traits_as<openstudio::DocumentElement,
swig::pointer_category>::as'
      requested here
    return traits_as< Type, typename traits< Type >::category
>::as(obj, te);
                                                                 ^
~/osbuilds/develop_branch/OpenStudioCore-prefix/src/OpenStudioCore-build
/src/utilities/ruby_OpenStudioUtilitiesDocument_wrap.cxx:5053:114:
note:
      in instantiation of function template specialization
      'swig::as<openstudio::DocumentElement>' requested here
  ...openstudio::DocumentElement > >::value_type val =
swig::as<std::vector<o...
                                                             ^
~/osbuilds/develop_branch/OpenStudioCore-prefix/src/OpenStudioCore-build
/src/utilities/ruby_OpenStudioUtilitiesDocument_wrap.cxx:3267:9: note:
      explicitly cast the pointer to silence this warning
        memset(v_def,0,sizeof(Type));
               ^
               (void*)

[2] - Warning
logical not is only applied to the left hand side of this comparison
      [-Wlogical-not-parentheses]
    if (!objects.size() == 1){
        ^               ~~
Merge branch 'develop' into FixCompilerWarnings
Support up to two fans on AirLoopHVAC

[#69205098]
Java support compiling, not yet working

SWIG issues abound. In a followup commit I will get it working and
request comments on the changes implemented.
Get java swig bindings compiling

@macumber please review. Most of the problem is that we can be
inconsistent with static/nonstatic/return types of overloaded methods

Java gets rather whiny if the return types change between overloads,
plus, things like IddObjectType is declared non-static in the base
class, but static in the derived classes. Java REALLY doesn't like that.
java bindings nominal working

 - review from Dan @macumber required (see previous commit)
 - significant testing needed
Add example file and notes for compilation / testing
Add missing forgotten files
Add java packaging and clean up a few build issues
Add includes and linking for java on msvc
Build with javac from file list, fix macos packaging

 - the file list fix should solve the problem of "too long" command
   lines when calling javac
 - macos packaging would not have been bundling correctly. Theoretically
   it is now
Merge branch 'develop' into FixCompilerWarnings
Rename java libs on macos to dylib extension.
Correct packaging on MacOS