TIMOB-9389 & TIMOB-9407

TIMOB-9389 Blackberry: implement String.format numbered specifiers support
TIMOB-9407 Blackberry: add support for StringObject in the String formatting methods

Changelog:
- added support for numbered args in format
- update apidoc + extra condition
- Support StringObjects where String is expected
- convert non string objects using ToString
NOTE: our Ti objects currently don't support toString correctly and crash when hitting that code.  TIMOB-9665 has been created to track that issue.

Tests:
- Verified converting non string objects when string is expected works except for Ti objects
-- Tried both as format string and as string param
- Verified that StringObjects work just like a string
- Verified using numbered args works correctly, and that using the same arg multiple times in the same format string also works as expected.
TIMOB-9389 & TIMOB-9407 part 2

TIMOB-9389 Blackberry: implement String.format numbered specifiers support
TIMOB-9407 Blackberry: add support for StringObject in the String formatting methods

This patch is to move the native code into a Native class accessible via the objectFactory.  It also attaches the string methods to the builtin String object rather than overriding it.

Changelog:
- add the String methods to the Global String object
- moved native logic to a Native* class
- added NativeObjectFactory::getNativeStringInterface
- moved create string methods to a function in TiRootObject
- silence compiler warnings
- remove implementation of JSON and decode/encodeURIComponent that are built in V8
- fixed include order in NativeObjectFactory.cpp
New files:
 - NativeStringInterface.*
Deleted files:
 - TiJSONObject.*
 - TiStringObject.*

Tests:
- Verified that tibb and tibbtest build correctly and the format method is accessible on the String object
- Validated that String, JSON and its methods and also encodeURIComponent/decodeURIComponent built-ins are now available and usable
Use ToString on all types when a string is expected
Support NumberObject's

Tests:
- Validated that ToString can be called on any type of arg and does the same behaviour as seen in Chrome JS console
- Validated that NumberObjects can now be used in lieu of Number primitives and yield the same result
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

[Issues Fixed]
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

[Added]
NativeLoggerInterface.h
NativeLoggerObject.cpp
NativeLoggerObject.h
NativeLoggerWorker.cpp
NativeLoggerWorker.h
TiLogger.cpp
TiLogger.h

[Changes]
NativeAbstractTextControlObject.cpp
- switched to use N_DEBUG

NativeObject.h
- added N_TYPE_LOGGER
- removed old Ti_DEBUG

NativeObjectFactory.cpp
- added N_TYPE_LOGGER

TiUITableView.cpp
- switched to use Ti_DEBUG

TitaniumRuntime.cpp
- initialize TiLogger

[Tests]
Test 1: Use logger
1) Put some Ti_DEBUG and N_DEBUG statements in the code that will be run
2) Build tibb and verify there are no errors
3) Create, build, and run a new project
4) Verify the logging statements are in the app's log and are not intermingled
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

Disables copy ctor and assignment operator, plus added comment.
TIMOB-9792: Implement getChildren() function on UI View
Reviews: David L, Alex

Change Log:
- updated yml file
- moved native object and native object factory into TiObject
- added a class for read only calculated properties
- removed object factory from TiUIBase constructor
- added a setNativeObjectFactory to TiObject
- added getChildren() and children to TiUIBase
- added child control tracking to TiUIBase
- added methods for initializing native events
- changed order of initialization completion

Test Cases:
- build tibb
- build tibbtest
- run tibbtest
- an application with a red background should appear with a button, label, slider, and a progress bar
- push the button
- the title on the button should change to "Children: 4", the slider background should change blue, and the progress bar background should change to green

Jira task: https://jira.appcelerator.org/browse/TIMOB-9792
Changes based on code review
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

Changed to use streams instead for easier appending
Added tagged macros
Changed naming of s_nativeLogger and TI_DEBUG
Removed the arg name in function definititions

For unimplemented functions I kept the arg name for the arg I know will be used when the function is implemented.
Merge branch 'blackberry' into timob-9389

Conflicts:
	blackberry/tibb/NativeObjectFactory.cpp
Merge pull request #84 from jpl-mac/timob-9389

TIMOB-9389 & TIMOB-9407
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

[Added]
NativeMessageStrings.cpp
NativeMessageStrings.h

[Changed]
Moved debug strings to central location
Removed unused function TitaniumRuntime::Log
Merge branch 'master' into TIMOB-9306_01

Conflicts:
	blackberry/tibb/NativeObjectFactory.cpp
	blackberry/tibb/NativeStringInterface.cpp
	blackberry/tibb/TiMessageStrings.h
	blackberry/tibb/TiRootObject.cpp
Merge pull request #85 from dlifshitz-maca/TIMOB-9306_01

TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

[Issues Fixed]
TIMOB-9306: Blackberry: add a universal logging mechanism for tibb

[Added]
NativeLoggerInterface.h
NativeLoggerObject.cpp
NativeLoggerObject.h
NativeLoggerWorker.cpp
NativeLoggerWorker.h
NativeMessageStrings.cpp
NativeMessageStrings.h
TiLogger.cpp
TiLogger.h

[Changes]
NativeAbstractTextControlObject.cpp
- switched to use N_DEBUG

NativeObject.h
- added N_TYPE_LOGGER
- removed old Ti_DEBUG

NativeObjectFactory.cpp
- added N_TYPE_LOGGER

TiUITableView.cpp
- switched to use Ti_DEBUG

TitaniumRuntime.cpp
- initialize TiLogger

Moved debug strings to central location
Removed unused function TitaniumRuntime::Log
Also moved the Native strings into NativeMessageStrings.h

[Tests]
Test 1: Use logger
1) Put some Ti_DEBUG and N_DEBUG statements in the code that will be run
2) Build tibb and verify there are no errors
3) Create, build, and run a new project
4) Verify the logging statements are in the app's log and are not intermingled
TIMOB-9805 Blackberry: Implement UI.View.show

Changelog:
- Implement show
- remove unused var warnings in TiUIBase

Tests:
- merged in Dave's getChildren patch to fix the event handling
-- Using an eventHandler, toggled between show and hide on UI Controls
==> Verify that hide and show functions work
TIMOB-9843: BlackBerry: Package framework's .js files

[Issues Fixed]
TIMOB-9843: BlackBerry: Package framework's .js files

[Added]
bootstrap.js

[Changes]
package.py
- funcation zipBlackberryDir
  - also package .js files in the SDK

blackberryndk.py
- function package
  - copy the framework's JavaScript and package them in the .bar file

[Tests]
Test 1: Build Mobile SDK and an app
1) Run scons
2) Verify the build succeeds and the framework's .js files are in the Mobile SDK .zip file
3) Extract the Mobile SDK .zip file and create a project using project.py
4) Build and package/run the app
5) Verify the framework's .js files are in the .bar file
TIMOB-9548: BlackBerry: Implement API elements needed for KitchenSink

Reviewers: DavidL, Harut

ChangeLog:
- Implemented info, log, error, warn, debug, methods from Ti.API namespace

Test Cases:
- Run tibbtest.
- Use the following app.js snippet to test Ti.API functionality:

////////////////////////////////////////
:app.js
//
// create root window
//
var win1 = Titanium.UI.createWindow({
    backgroundColor:'#F00'
});

var label1 = Ti.UI.createLabel({
	textAlign : 'center',
	text:'Hello, world!',
	color:'green',
	top: 200
});

label1.text=new Date();

win1.add(label1);

var strBoy = new String('boy');
var strGirl = new String('girl');

Ti.API.log('debug', String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.log('warn', String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.log('undefined', String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.log(String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.debug(String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.info(String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.error(String.format('%s + %s = LOVE', strBoy, strGirl));
Ti.API.warn(String.format('%s + %s = LOVE', strBoy, strGirl));

// open window
win1.open();
TIMOB-9844: BlackBerry: Include/require framework's .js files

[Issues Fixed]
TIMOB-9844: BlackBerry: Include/require framework's .js files

[Changes]
TiMessageStrings.h
- added error string

TiRootObject.cpp
- function executeScript
  - read and run the bootstrap.js file

[Tests]
Test 1: Build Mobile SDK and run an app
1) Put some test code in bootstrap.js (eg a string variable)
2) Run scons
3) Verify the build succeeds and the framework's .js files are in the Mobile SDK .zip file
4) Extract the Mobile SDK .zip file and create a project using project.py
5) Edit app.js to use the bootstrap.js test code
6) Build, package, and run the app
7) Verify there are no errors and the bootstrap.js test code is working
Merge branch 'blackberry' into TIMOB-9792

Conflicts:
	blackberry/tibb/TiUITableView.cpp
Merge pull request #86 from dcampbell-macadamian/TIMOB-9792

TIMOB-9792: Implement getChildren() function on UI View