jar: Start up time improvement

Reduce startup time from 67 msec to 41 msec:

  Before:

  [penberg@localhost hornet]$ perf stat ./hornet tests/StartupTest

   Performance counter stats for './hornet tests/StartupTest':

           67.462540      task-clock (msec)         #    0.994 CPUs utilized
                   0      context-switches          #    0.000 K/sec
                   1      cpu-migrations            #    0.015 K/sec
               1,311      page-faults               #    0.019 M/sec
         111,338,754      cycles                    #    1.650 GHz                     [83.59%]
          39,395,238      stalled-cycles-frontend   #   35.38% frontend cycles idle    [83.68%]
          20,155,748      stalled-cycles-backend    #   18.10% backend  cycles idle    [67.35%]
         190,367,935      instructions              #    1.71  insns per cycle
                                                    #    0.21  stalled cycles per insn [83.67%]
          37,706,943      branches                  #  558.932 M/sec                   [83.68%]
             192,799      branch-misses             #    0.51% of all branches         [82.17%]

         0.067860101 seconds time elapsed

  After:

  [penberg@localhost hornet]$ perf stat ./hornet tests/StartupTest

   Performance counter stats for './hornet tests/StartupTest':

           41.035408      task-clock (msec)         #    0.989 CPUs utilized
                   0      context-switches          #    0.000 K/sec
                   1      cpu-migrations            #    0.024 K/sec
               1,873      page-faults               #    0.046 M/sec
          59,792,948      cycles                    #    1.457 GHz                     [82.92%]
          24,254,640      stalled-cycles-frontend   #   40.56% frontend cycles idle    [82.94%]
          19,717,222      stalled-cycles-backend    #   32.98% backend  cycles idle    [67.51%]
          62,524,890      instructions              #    1.05  insns per cycle
                                                    #    0.39  stalled cycles per insn [85.01%]
          14,598,264      branches                  #  355.748 M/sec                   [85.35%]
             849,033      branch-misses             #    5.82% of all branches         [82.88%]

         0.041505629 seconds time elapsed

and reduce memory allocated at startup from 597 MB to 5.8 MB:

  Before:

    [penberg@localhost hornet]$ valgrind ./hornet tests/StartupTest
    ==23718== Memcheck, a memory error detector
    ==23718== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
    ==23718== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
    ==23718== Command: ./hornet tests/StartupTest
    ==23718==
    ==23718==
    ==23718== HEAP SUMMARY:
    ==23718==     in use at exit: 0 bytes in 0 blocks
    ==23718==   total heap usage: 40,257 allocs, 40,257 frees, 597,012,538 bytes allocated
    ==23718==
    ==23718== All heap blocks were freed -- no leaks are possible
    ==23718==
    ==23718== For counts of detected and suppressed errors, rerun with: -v
    ==23718== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)

  After:

    [penberg@localhost hornet]$ valgrind --leak-check=full ./hornet tests/StartupTest
    ==26744== Memcheck, a memory error detector
    ==26744== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
    ==26744== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
    ==26744== Command: ./hornet tests/StartupTest
    ==26744==
    ==26744==
    ==26744== HEAP SUMMARY:
    ==26744==     in use at exit: 0 bytes in 0 blocks
    ==26744==   total heap usage: 94,261 allocs, 94,261 frees, 5,858,348 bytes allocated
    ==26744==
    ==26744== All heap blocks were freed -- no leaks are possible
    ==26744==
    ==26744== For counts of detected and suppressed errors, rerun with: -v
    ==26744== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)

Signed-off-by: Pekka Enberg <penberg@kernel.org>