New build system and other fixes


## New build system using [autotools](http://www.gnu.org/savannah-checkouts/gnu/automake/manual/html_node/index.html)

### Advantages

- Follow the [GNU build system](http://en.wikipedia.org/wiki/GNU_build_system) conventions.

- Static and shared libraries are created by default. [Libtool](http://www.gnu.org/software/libtool/) is used to set the required flags

- Compiler flags to build the libraries are automatically set by libtool
- We honour the expected priority in compiler flags (from higher to lower priority)
    * User CFLAGS
    * Environment CFLAGS
    * Bellbird CFLAGS
    * Default CFLAGS

 For instance, to append "-fPIC" to the default flags a user would type: `./configure CFLAGS="-fPIC"`

- We honour typical fine tuning of the installation directories. This helps a lot when building a package for a linux distribution (see ./configure --help for more info):
  --bindir=DIR            user executables [EPREFIX/bin]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/bellbird]
...
- I believe we have a better incremental building setup. Additionally, there is no problem on using `make -j 8` to use 8 jobs in parallel to compile everything.

- Automatically generated files are removed from git repository. They can be created by using ./autogen.sh. This force us to have config.guess, config.sub and similar files updated before each "official release". It also leaves the git repository smaller, as having the history of all the automatically generated files in the git repository may bloat its size.
- Program version in `main/bellbird.c` is automatically taken from `configure.ac` (see macro `AC_INIT` at the beginning). Changing the version in `configure.ac` will update the printed message on bellbird.

- A tarball ready for distribution named `bellbird-0.1.7-unstable.tgz` can be generated with `make dist`. The version number is taken from `configure.ac` again. This tarball contains the configure script and all the required files to build bellbird.

- `make distcheck` can be used to check that the tarball is generated and can be properly configured, built and installed.
- The README has been converted to Markdown in order to make it easier to read. It has also been updated to reflect these changes.

- Better separation of directories: In any build system there are three root directories:
  * The source directory: Where source files (and the configure script) are.
  * The build directory: Where compiled and auxiliar building files are. As a convention, the build directory is the directory where the configure script is run from.
  * The installation directories: Where programs and headers and libraries will be installed.

  In bellbird, a `build/$arch-$os` directory was created automatically as the *build directory*.  With the new build system, the build directory is the directory where the configure script is run from.
  This means that we can use any directory as build directory. For instance:
 * Source is unpacked in `/home/user/bellbird_src`
 * Build directory in `/tmp/build_bellbird`
 * Installation in `/home/user/bellbird`
 * Commands:

            mkdir -p /tmp/build_bellbird # create build directory
            cd /tmp/build_bellbird
            /home/user/bellbird_src/configure --prefix=/home/user/bellbird # call configure with install prefix
            make -j8 # compile
            make install # will install bellbird in /home/user/bellbird directory
            rm -rf /tmp/build_bellbird # remove build objects

  The bellbird binary will be at `/home/user/bellbird/bin/bellbird`.
  The libraries will be in `/home/user/bellbird/lib` and the public headers will be at `/home/user/bellbird/include`

## Other small fixes:
* Fixed warning on printf format (`int` vs. `long int`)
* README updated and formatted
* Added a .gitignore file. After compiling, git lists some created files and directories as "untracked". The .gitignore file allows these files to be ignored by git.
* The public header `include/nitech_engine.h` included a private header (`../src/nitech/nitech_hidden.h`). Usually "_hidden.h" files are "private headers" which are used to *compile* a library but are not required to link with it (so "_hidden.h" headers are considered source files and are not installed). Having a "public header" which depends on the private header may cause packaging troubles, as the private header would need to be installed too (i.e. belong to the "-dev" package). In summary, "private headers" may depend on "public headers" but not the opposite. In order to comply with this "rule" I had to move some of the private type definitions to the public header and include the public header at the private one.