[build] Add CMake Build System

  - Reflect the httpserver->fileserver changes
  - Set SOVERSION of libseafile to 0 as the same as what autoconf scripts do
test: Add the missing argument for read_index_from
Skip deprecated g_type_init() for GLib 2.36
[httpserver] bm->size >= 0 is always true

    In struct _BMetadata, size is unsigned.
    No need to check if bm->size >= 0
Silence compiler warning

   silence the warning of uninitialized head_id in putcommit-v2-proc.c
   silence the warning of implicit declaration of g_open in test-seafile-fmt.c
   silence the warning of implicit declaration of g_stat in test-cdc.c
   silence the warning of uninitialized e in merge-recursive.c
[TODO]update test_write_chunk to support new version of WriteblockFunc
Eliminate bad whitespaces in task.vala
Replace gnome-terminal with bash in test scripts
[lib] better byte ordering detection

     - originally inspired by redis (src/config.h) and
       llvm (include/llvm/Support/Host.h)
     - BSDs detection inspired by this platform detection manual
       http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system#BSD
     - Apple's OSX and iOS is based on a fork of FreeBSD, including
       machine/endian.h as what we do to other BSDs should be enough.
[server] Add cache support for repo

  - [fix] correct some typos and mistakes mentioned by killing
  - [fix] expire cache in seaf_branch_manager_test_and_update_branch in branch.c
  - [fix] expire cache in set_virtual_repo_base_commit_path in virtual-repo.c
  - [impl] TTL support for cache
[net] add initial support for reopening logfile