FORUM-669, FORUM-670, FORUM-671, FORUM-672 Improve the performance of reading/writing Forum Topics

Fix description
* FORUM-669, FORUM-670: Improve the performance of PostListAccess.getSize() and PostListAccess.load by
** Convert XPath query to SQL query.
** Limit the path depth in the query to get items
** Apply ExoCache for list of topics.
* FORUM-671: When a topic is opened, new thread is created to call ForumServiceImpl.saveLastPostidRead().
* FORUM-672: Do not apply NodeEventListener on all Category nodes and Forum nodes, only add the listener on the root Node and set node-type that NodeEventListener affects.
FORUM-665 [Unified Search] Improve the performance of DiscussionSearchConnector

Fix description
* Replace XPath query by SQL query
* Limit the number of result (use offset in the query)
* Execute only 1 query to find both of topics and posts
* Apply cache to get forums and topics.
Merge commit '82af7865a95c1a6acd44b00f1bb2fe4c806a15ec' into HEAD