person.js names in working state

Removed the multiple constructors, (JavaScript does not support
function overloading)

Instead of the (first, middle last) order, it is now (first last
middle), because middle is optional and defaults to undefined.