Eval with nested lists and longs

This is a new branch, as per pull request #478.

This is a fix for the eval method. It now handles nested lists, and you can have longs in lists.

This should address the issues #475, #383, #401 and #302.