Bug 1054934: Added public interface and callback functions

This commit adds callback functions for timeout handling and sending
data. An application must initialize these functions to interact
with the emulator.
Bug 1054934: Use callback functions through-out source code

This commit replaces references to Qemu by calls to callback functions.
Bug 1054934: Remove all references to |ControlClient|

|ControlClient| is a data type of Qemu. This commit removes all
references to it. Users can simple call one of the logging functions
instead.
Bug 1054934: Added |ARRAY_SIZE| macro

The macro |ARRAY_SIZE| returns the number of elements in a statically
allocated array.
Bug 1054934: Use standard allocator

This patch replaces calls to Qemu memory allocator with calls to the
standard allocator.
Bug 1054934: Implement byte-order macros

This patch adds a number of macros for handling different
byte-order conventions.
Bug 1054934: Fix incorrect-sign comparisons
Bug 1054934: Replace C++ 'false' by '0'
Bug 1054934: Fix undefined order of operations in tag activation
Bug 1054934: Fix function-call argument for NFC Tags
Bug 1054934: Replace VERBOSE_PRINT by standard fprintf
Bug 1054934: Add command-line interface
Bug 1054934: Add 64-bit library to build scripts
Bug 1054934: Export interfaces