Fixed bugs and optimized code.

- Used hash tables instead of Array.prototype.some() for looking up suffix and salutation.
- Created function to convert from lexical to western order
- Used `Array.prototype.shift()` and `Array.prototype.pop()` instead of `Array.prototype.splice()`
- Forced input to `.parse()` to a string.
- Returns empty object is no input is supplied.