Handle empty ast lists

1. Empty ast lists must be handled by the liverunner. these can happen
when an empty codeblock is propagated to LR
2. Handle multi-assignment single line expressions prior to ssa
transform (a=b=1 must be split)
3. Testcases for multi-assignment single line expressions and empty ast
Use FFITarget for testcase
Split class heirarchy traversal in 2 passes

1. Traverse the immediate base class in a first pass
2. Traverse all the base classes in the the class hierarchy in a second
pass
3. Test cases for 4-level class hierarchy
Merge pull request #1280 from junmendoza/PeanutButter

Handle empty ast lists
Merge pull request #1279 from Zhengzi/ChocoButter-2Become1

Add test case of each node for migration