Check local variables set with var === undefined.

Local variables always exist, so value check is
enough. This makes it easier to read code for me.
Don't use typeof for Node and Edge 'data' field.

`data` field is always set for Node and Edge objects,
no need to check for existence - value check is enough
for `data` fields.
Use `in` operator to check for index existance.

The check (key in obj) is more readable than
(typeof key[obj] !== 'undefined').
Add helper method .addNodes() that accepts list of strings.