Machina Ethica: A Framework for Computers as Kant Moral Persons