fixed recursion bug

It was possible with faulty code to cause a recursion bug in the
marionette system. This extra check for null should aliviate the problem,
albeit this would still be considered a problem with the original code.
fixed push in MarionetteLib

push will now correctly return null or errors instead of the entry