Add CMake Build System
[lib] remove duplicated code in rsa.c

    - remove duplicated code
    - better code style
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 goto in compute_repo_size of size-sched.c
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.
first commit