Merge branch 'formatReview', remote-tracking branch 'jpl-mac/timob-9388' into formatReview

#Some more info....
Merge branch 'formatReview', remote-tracking branch 'upstream/blackberry' into formatReview

#Some more info....
TIMOB-9395: Blackberry: implement decode/encode URIComponent

Reviewers: DavidC, JP

ChangeLog:
- Implement decode/encode URIComponent

Test Cases:
- Using sample tibbtest project create var with the value of:
  'http://www.example.com/List%20of%20holidays.xml'
- Use decodeURIComponent to decode the uri.
- Make sure it decodes successfully.
- Using sample tibbtest project create var with the value of:
    'http://www.example.com/List of holidays.xml'
- Use encodeURIComponent to encode the uri.
- Make sure it encodes successfully.
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format)

Reviewers: HarutM, JP

ChangeLog:
- Added new TiDateObject class.
- Added new message constants.
- Implemented formatDate, formatTime, formatCurrency, formatDecimal methods

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.

NOTE: locale & pattern not yet implemented for formatDecimal
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format) ver2

ChangeLog:
- Address comments.
- Update String.yml apidoc.
- Change the QDateTime to QTime for formatTime method.

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.

NOTE: locale & pattern not yet implemented for formatDecimal
NOTE: test snippet available at discussion page.
Merge branch 'formatBranch'; commit '3c93b467' into formatBranch

Conflicts:
	blackberry/tibb/TiRootObject.cpp
Merge branch 'formatBranch', remote-tracking branch 'upstream/blackberry' into formatBranch

#Some more info....
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format) ver3
Reviewers: HarutM, JP

Review the 99130f8

ChangeLog:
- Remove TiDateObject class.
- Address comments.

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
Merge branch 'formatBranch', remote-tracking branch 'upstream/blackberry' into formatBranch

#Some more info....
Merge branch 'formatBranch', remote-tracking branch 'jpl-mac/timob-9389' into formatBranch

Conflicts:
	blackberry/tibb/TiRootObject.cpp
	blackberry/tibb/TiStringObject.cpp
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format) ver4

Reviewers: HarutM, JP

ChangeLog:
- Address comments

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.

NOTE: Test cases passed with StringObject
Merge branch 'formatBranch', remote-tracking branch 'upstream/blackberry' into formatBranch

Conflicts:
	blackberry/tibbtest/app.js
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format) ver3
Reviewers: HarutM, JP

Review the 99130f8

ChangeLog:
- Remove TiDateObject class.
- Address comments.

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
TIMOB-8837: <Implement UI.TabGroup elements needed for KS

Reviewers: David C, Alex

[Changes]
- Implemented tab and TabGroup modules with properties needed for KS
- implemented title, icon, window properties for tab
- implemented setAtiveTab, open, and addTab functions for tabGroup
- added support for native control as value of property
- fixed ListView regression crash

[Test Cases]

- make sure we can instance tab and tabGroup and above mentioned
  functionality is working.
 e.g. run code below:

var tabGroup = Titanium.UI.createTabGroup();

var win1 = Titanium.UI.createWindow({
    backgroundColor:'#336699'
 })

var tab1 = Titanium.UI.createTab({
   title: 'TAB1',
   window: win1,
 });

var win2 = Titanium.UI.createWindow({
 })

var tab2 = Titanium.UI.createTab({
   title: 'TAB2',
   window: win2,
 });

tabGroup.addTab(tab1);
tabGroup.addTab(tab2);
tabGroup.setActiveTab(tab1);
tabGroup.open();
Addressed comments.
Merge branch 'formatBranch', remote-tracking branch 'upstream/blackberry' into formatBranch

Conflicts:
	blackberry/tibb/NativeStringInterface.cpp
	blackberry/tibb/TiMessageStrings.h
	blackberry/tibb/TiRootObject.cpp
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format) ver4

Reviewers: HarutM, JP

ChangeLog:
- Address comments.

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.

NOTE: locale & pattern not yet implemented for formatDecimal

Test snippet from app.js:
 //
 // create root window
 //
 var win1 = Titanium.UI.createWindow({

 backgroundColor:'#F00'
 });

var date = new Date();
 var format = String.formatDate(date, 'short');

//var date = new Date();
 //var format = String.formatDate(date, 'medium');

//var date = new Date();
 //var format = String.formatDate(date, 'long');

//var date = new Date();
 //var format = String.formatTime(date, 'short');

//var date = new Date();
 //var format = String.formatTime(date, 'medium');

//var date = new Date();
 //var format = String.formatTime(date, 'long');

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

label1.text = format;

win1.add(label1);

// open window
 win1.open();
Merge branch 'formatBranch', remote-tracking branch 'upstream/blackberry' into formatBranch

#Some more info....
TIMOB-9390: Blackberry: implement rest of String.formatXXX methods (other than format)

Reviewers: HarutM, JP

ChangeLog:
- Move the date conversion logics into the NativeControlObject.
- Address comments.

Test Cases:
- Using sample tibbtest project create var with the value of Date
- Use formatDate(date, [format]), formatTime(date, [format]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatCurrency(number) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.
- Create var with number value.
- Use formatDecimal(number, [locale], [pattern]) in app.js
- Make sure string correctly formatted.
- Try the same with previously changed language.

NOTE: locale & pattern not yet implemented for formatDecimal

Test snippet from app.js:
 //
 // create root window
 //
 var win1 = Titanium.UI.createWindow({

 backgroundColor:'#F00'
 });

var date = new Date();
 var format = String.formatDate(date, 'short');

//var date = new Date();
 //var format = String.formatDate(date, 'medium');

//var date = new Date();
 //var format = String.formatDate(date, 'long');

//var date = new Date();
 //var format = String.formatTime(date, 'short');

//var date = new Date();
 //var format = String.formatTime(date, 'medium');

//var date = new Date();
 //var format = String.formatTime(date, 'long');

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

label1.text = format;

win1.add(label1);

// open window
 win1.open();
TIMOB-9874: BlackBerry: implement require()

[Issues Fixed]
TIMOB-9874: BlackBerry: implement require()

[Changes]
NativeLoggerWorker.cpp
- add newline to message first so the stream doesn't split it up

TiRootObject.cpp
- function executeScript
  - use variables for the bootstrap and app filenames
  - pass the filenames to the calls to Compile()
  - add the javascript filename and line number to the log message
- implement function _require

TiTitaniumObject.cpp
- function _include
  - add the javascript filename and line number to the log message

[Tests]
Test 1: Build and run an app (using .js files from Jira)
1) Put the .js files in the Resources dir so they will get packaged
2) Build, package, and run the app
3) Verify the correct info is shown in the app
4) Close the app, get the log, and verify the "module being loaded!" message is only shown once

Test 2: Crash the app
1) Put an undeclared variable in app.js, a file being included, and a file being required
2) Run the app, verify it crashes, get the log, and verify the location of the problem is shown
3) Remove the offending variable
4) Repeat Steps 2-3 until all offending variables are gone and the app runs successfully