[#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
Update setBooleanFieldValue and bug fixes

setBooleanFieldValue was implicitly converting “Yes” and “No” to an
always true bool. This corrects the existing implementation bugs and
updates setBooleanFieldValue to throw a link time error for the future.
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
Initial AirLoopHVACUnitarySystem object
Update AirLoopHVACUnitarySystem object
Support up to two fans on AirLoopHVAC

[#69205098]
Update containingHVACComponent(s) for new Unitary
Add unit tests and fixes due to unit tests

Adds unit tests for AirLoopHVACUnitarySystem along with various bug
fixes due to the unit tests.
Fix failing unit test

Fixes a failing unit test in AirLoopHVAC:UnitarySystem when removing a
unitary system with coils attached to a plant loop.
Add DX coil translateAndMapModelObject 'magic'

This change allows translateAndMapModelObject to use the correct
forward translator for DX coils depending on whether or not they are
part of a containing system, such as a unitary system.

This checks if the coil is on an AirLoopHVAC (and thus use
translateFoo) or if the coil is in a containing component (and thus use
translateFooWithoutUnitary).
Add ForwardTranslateAirLoopHVACUnitarySystem
Merge remote-tracking branch 'origin/EP81' into EP81_UnitarySystem
Fix build issues
Merge branch 'EP81' into EP81_UnitarySystem