Typeinfo objects

The bike.parsing.addtypeinfo module adds a typeinfo object as an attribute to each ast 'scope' node (e.g. Module, Class, Function). The purpose of this object is to provide an api for investigating the types of references used within that node. The addTypeInfo function walks over the ast attempting to deduce these types. The most important method on the typeinfo objects is 'getTypeOfExpr()', which takes an ast expression as an argument (e.g. Callfunc), and attempts to evaluate its type.