integrate cloneItem into StateHistory

1. rename clone() to cloneItem(); clone is an existing method in object,
it will be overriding without remaning.
2. makes cloneItem() takes no argument. Can consider make it static
method too.
3. makes cloneDateTime() takes no argument. Can consider making it
static method too.
4. edited error message in ItemList