HibernateUtil增强

+ HibernateUtil.threadSession() 这个方法能向同一线程返回同一个Session, 使用此方法可保证一致性和减少开销
Merge branch 'galin-seedling' of https://github.com/cuter44/Librarica.git into galin-seedling
改进dao层代码 partial

使用高集成的dao逻辑, 更简便的会话控制, 可以提升处理速度.
准备重写API层
启用新的Dao层 partial

正在重构原有代码
启用新的DAO层 完成

变更汇总:
* 总体架构
  * 因为优化了DAO层, 降低了耦合度, 完全隔离了servlet对持久层的直接读写但又不会使参数传递过于复杂
  * 现在可以更明确地区分数据库事务的相互独立
* DAO
  - 原有的持久化访问方式已被破坏
  * Hibernate配置文件已更改
  + 增加 HbmDao 综合持久化访问工具
  - UserHbm已废弃
  - BookHbm已废弃
* Internal API
  * Authorizer 已完全重写
  * BookHandler 已完全重写
  + BookUtil 将 BookHandler 中不需要用户权限的部分分离
* Servlet
  * 绝大部分Servlet已被重写, 现在他们会正确地使用标准的Http状态码表示请求的执行结果
  * 少部分Servlet的返回结果发生变更, 详情请参见其javadoc(也有可能忘记更新javadoc, 发生这种事请@cuter44)
  + /book/remove 现在不允许删除出借中或登记出借中的书, 这个特性将在之后进一步变更
消息发送系统增加

* 全局
  * id类数据域已经全部变更为long型, 以前使用int
+ 追加消息系统
  + DAO
    + MessageSession
    + Message
  + API
    + (lib)MsgHandler
  + Servlet
    + /message/createSession
    + /message/getSession
    + /message/getMsg
    + /message/sendMsg
  * 特性
    * 特别地设计以便该架构未来可以扩展为多人会话
    ! 已知问题: 因为还没有实现新消息通知所以目前判断是否有新消息的唯一途径是/message/getSession?uid=#, 然后将两次之间的差异进行比较. 这个问题将在下一次release中改善
    ! 已知问题: 因为知识水平所限目前getMessage的before/after参数会带来一些副作用, 这个问题将在下一次release中改善
* 修正了登录校验中的一个问题, 该问题会导致在没有带uid/sid请求时返回500, 正确的行为是返回403
* 缩小了wiki首页中的工作流图像