Basic works to read options from command line

Added basic code to read options from command line.
Also included simple help messages for the command line tool.

The options will be implemented in the coming commit(s).
Refactored error messages code of CLI

1. Added print_error to unify error messages due to input errors
2. Relocated print_help to the top
Implements the options in CLI

The options are read by command line but not actually used.
This commit implements "with-filter", "mode" and "use-cj-version"
to the program logic.

Also improved error messages format with print_error.

This should be sufficient to fix issue #1.
Removed stdlib exit code reference from CLI

References to stdlib exit code (EXIT_SUCCESS, EXIT_FAILURE) was
added in commit aa71faaeb2. In particular, EXIT_FAILURE was added
as a representation of input argument error.

On the other hand, there are number of return statements that
would return the Sqlite3 error code.

Since both EXIT_FAILURE and SQLITE_ERROR are the 1, it is not
possible to distinct the return code between input argument errors
and sqlite errors.

This commit changes all the EXIT_FAILURE to -1 and EXIT_SUCCESS to
1. Also, the reference to stdlib was removed.
Implemented radical query in CLI

The "radical mode" query was not implemented yet in the previous
commit.

This commit Implements "radical mode" to the CLI interface. Will
loop through all provided code and query the radical with the
function cangjie_get_radical.

This should really reslove issue #1.
Fix CLI segmentation fault for invalid option

Giving libcangjie2_cli an invalid option would trigger segmentation
fault. This one should fix the problem hence resolve issues in #13.
CLI code clean up and option change

1. Did some format clean up to make the code easier to read
2. Changed -u to -C, --with-filter to --filter
3. Changed SQLITE_OK to CANGJIE_OK
4. Renamed print_help() to usage()
5. Used argv[0] as the program name in usage()
Changed used basename() in usage() as CLI name

The CLI tool usage() function used argv[0] as self-name. The full
path is long and unnecessary.

Hence, basename() is used to simplified the output.

TODO: libgen is part of the GNU C Library. The code is not platform
-independent. Have to make it works on other platform.
Merge pull request #13 from yookoala/cli-with-options

Improved libcangjie2_cli with command line options
cli: Make usage() and print_error() return type void
table: Fix comment

The previous one didn't make a lot of sense, now that I read it again
after some time.
table: Add fullwidth numbers

An early tester of IBus Cangjie just asked me if we could do this, and
it seems like a reasonable improvement.
data: Make the frequency per code, rather than per character

This will allow us to have a more fine-grained control over the results
we display to the user for characters which have multiple codes.

This changes the database model, but fortunately it doesn't break the
libcangjie2 API at all.
dbbuilder: Allow multiple lines for one character in the source table

This will make it possible to define different per-code frequencies for
a given character.
table: Have two frequencies for 氐

The 氐 character has 2 Cangjie codes in our data: 'hpm' and 'hvpi'.

However, depending on the reference sources (dictionaries, CBF's
website, the chinesecj.com forum,...), we can find either only 'hpm',
or both.

That's all a bit confusing...

Doing some tests with Cangjie users, they only knew about the 'hpm'
code, never the 'hvpi' one (although once told about it, they were
usually able to understand how to decompose 氐 in 'hvpi').

That tells me that 'hpm' is absolutely necessary, but not 'hvpi'.

Unfortunately, 'hvpi' is actually causing us trouble, as Quick users
don't expect to see 氐 as the third result when typing 'hi'. In fact,
they don't expect it at all when typing 'hi', only when typing 'hm'.

The way out is to set the frequency to 0 for this character when called
by the 'hvpi' code, so that it appears way low in the list.

That should please Quick users.
Merge pull request #30 from Cangjians/data-fixes

Data fixes
Merge pull request #36 from linquize/cli-void

cli: Make usage() and print_error() return type void