plugin/core.c: Add ability to run the core plugin on ibmgtsim simulator

In order to run core plugin on ibmgtsim simulator, 2 instances
of SM with core plugin are needed:

[1] The first SM instance and plugin (compiled with
    --enable-simulator) runs on the ibmgtsim
    simulator and responds to SM SUBNET UP event
    that causes the SMDB to be generated and dumped
    to disk.

[2] The second SM instance and plugin (compiled with
    --enable-simulator-smdb) runs on real fabric.
    SMDB dumped by first plugin instance, is
    periodically checked for changes, and if changed
    it is loaded and proper update messages are
    sent to downstream threads.

* This functionality is added in order to run SSA
  framework on real fabric using large simulated
  topology.

* Both plugins should have the same directory defined
  for dumping SMDB and also have the same mode of SMDB
  dumped.

* SMDB locking is done using a lock file (smdb_lock_file),
  and that allows only to a single SSA plugin access
  (read/write) the data.
  lock file path is: smdb_dump_dir /../ 'ibssa_smdb.lock'

Note that solution is currently limited as is SSA itself
to single IB port/single subnet.

Signed-off-by: Ilya Nelkenbaum <ilyan@mellanox.com>
Signed-off-by: Hal Rosenstock <hal@mellanox.com>