Add obj.name field

 - obj.name field is user frienndly vs obj.id which is unique and not intended for the user
 - e.g. UnreachableLamp -> .name = "lamp", .id = "unreachable_lamp"
 - updated tests and html to use .name instead of .id
 - will need to provide support for situation where two objects have the same .name field