Squashed commit of the following:

commit 7f8f96a49fb5575aae0e132479cb4b75e41ef6cb
Author: Kasper Kristensen <kaskr@imm.dtu.dk>
Date:   Fri Oct 11 15:19:52 2013 +0200

    reduce calls to R_gc()

commit bc1cabb87ab6349a7ca634d087cac5b3e5f91297
Author: Kasper Kristensen <kaskr@imm.dtu.dk>
Date:   Fri Oct 11 11:18:18 2013 +0200

    dyn.unload

commit ec777f8a1933ba6091d58a5dace69f85f870e235
Author: Kasper Kristensen <kaskr@imm.dtu.dk>
Date:   Fri Oct 11 10:38:15 2013 +0200

    dyn.unload garbage collect correctly

commit 1ac41a1a5d51577dfa7b511844fc3f2a18096999
Author: Kasper Kristensen <kaskr@imm.dtu.dk>
Date:   Thu Oct 10 21:14:31 2013 +0200

    unload safety: basically working.
    - need proper gc()
    - better error message