[ZabbixAPI] Add a new function: queryFirstEventId
[ZabbixAPI] Add a new function: getLastEventId()
[ArmZabbixAPI] Use the getFirstEventId() function.
[ZabbixAPI] Fix error message.
[DBClientZabbix] Fix constant value: EVENT_ID_NOT_FOUND

-1 ->
 0

When Hatohol is initial state, the ArmZabbixAPI::updateEvents() function
gets event data with dividing. But, in current implemantation,
the DBClientZabbix::getLastEventId() function doesn't return
EVENT_ID_NOT_FOUND. And, when Hatohol is initial state, the
DBClientZabbix::getLastEventId() function return "0".

So, I change the EVENT_ID_NOT_FOUND value.
Revert "[DBClientZabbix] Fix constant value: EVENT_ID_NOT_FOUND"

This reverts commit 85c415b4799ea6b98a7b6d66ab514ddafd83de7a.

Because, in commit mail discussion, there is a conclusion that the
change isn't good.
[DBClientZabbix] Return a EVENT_ID_NOT_FOUND value when max() function
of sqlite3 return NULL.
[ArmZabbixAPI] Change the way of getting event data.

I reffered HapZabbixAPI::workOnEvents() function.
[ZabbixAPI] Return 0 when response of Zabbix API is including empty
array.
[MutexLock] Change the class name.

MutexLock ->
Mutex

The new name is natual and popular.
[ZabbixAPI] Return EVENT_ID_NOT_FOUND when response of Zabbix API is
including empty array.
[ArmZabbixAPI] Return the updateEvents() function with INFO/ERR message
when the getFirstEventId() or the getLastEventId() function return
EVENT_ID_NOT_FOUND.
[DBClientJoinArg] Add a new class (almost stub).

This purpose of this class is to replace the class: SelectMultiTableArg
and provide a way to use JOIN operations with more simple lines.
In addition, it will offer a mechanism to limited the join only among
DBClient subclasses with the same DBAgent.
[DBClientJoinArg] Add a missing '&' for an input paramter.
[ArmZabbixAPI] Fix messages.
[ArmZabbixAPI] Move decision point of conditional branch.
[ArmZabbixAPI] Fix the word.

id ->
ID
[ArmZabbixAPI] Move the decision point after serverLastEventId is
obtained.
[ZabbixAPI] Add new enum: EventIdSortType
[ZabbixAPI] Add a new function: queryFirstOrLastEventId()