[SystemInfo] Use singleton model to support multi frames

The old design is one frame one set of listening mechanism. So when there are multi-frames,
there will be multiple sets of events. However, the vconf only support to register the first one
when asking twice for the same vconf_notify_key_changed with same Key and vconf_callback_fn
and the others will be ignored. So, the old framework couldn't resolve the vconf issue.

The current design uses singleton event listening mechanism.
Every property object (such as: cpu, local, storage ...) is singleton.
Each of them will maintain an according events list. Use StartListening(Context* api) to
push back the current context to the according list. Use StopListening(Context* api) to
remove the current context from the list. When the property value changed,
iterate the list to post message to all the listenng context.
Merge pull request #155 from qjia7/master

[SystemInfo] Use singleton model to support multi frames
[Time] Add getAvailableTimezones
[Time] Fix TZDate constructor

Both date and timezone are optional.

Now supporting the following example:

foo = new tizen.TZDate(null, "Europe/Berlin");
[Time] Change the way of construction of TZDate

This will reduce the possibility of mistakes between things
like getDate() and getDay().
[Time] addDuration is now throwing exceptions
[Time] Add the checks for timezone property
[Time] Solve instanceof problem

Some tests are checking the type of methods return.

For example:
assert_true(returnedValue instanceof tizen.TZDate, "TZDate check");

The way tizen.TZDate was implemented, some methods were returning
instanceof 'undefined'.

Now with this other way to implement tizen.TZDate, the methods are
returning the correct 'instanceof'.
[Time] Fix timezone -> timezone_ mistype
[Time] Fix unecessary check
[Time] Properly format toDateString, toTimeString and toDateTimeString
Merge pull request #182 from ricardotk/wip

[Time] Add and fix features
[SystemInfo][SIM] Fixed callback error and type mismatch error

The old design principle was if sim_get_** API's return value didn't equal
SIM_ERROR_NONE, we return an error callback. However, if the SIM status is
not READY, other attributes won't be gotten. So, here, we add sim_get_** API's
return value's checking. If the return value equals SIM_ERROR_NOT_AVAILABLE,
we reset the according attribute to empty and return true.
Merge pull request #138 from qjia7/mymaster

[SystemInfo] Fixed SIM callback error and type mismatch error
[download] Fix JS coding style

Fixes #159.
Merge pull request #183 from deqing/fix-coding-style

[download] Fix JS coding style
Merge pull request #174 from fyraimar/master

[SystemInfo] Fix getCapabilities()
[Time] Only use vconf in mobile
Merge pull request #184 from cmarcelo/fix-build-time

[Time] Only use vconf in mobile
[Time] Fix JS style