feat #385 Gestures

Support more gestures: double tap, single tap, long press, drag, pinch

Close #385
feat #404 improve logging in tests

1) Added Assert.assertEqualsWithTolerance(num1, num2, tolerance)

2) Formatted output in Assert.assertJsonEquals

Instead of dumping minimal JSON strings in failed JSON comparison,
pretty-print them.

3) Log to browser console in JSUnit in verbose mode

Currently, the SilentArrayAppender is the appender used in our JSUnit.
This means that things like $logError or $logWarn will not be displayed in
Firebug console.

However, the appender is changed from DefaultAppender in the middle of the
execution, which results in some logs actually being available in the
browser console, but the rest (after changing appender) not.

For debugging purposes, it's useful to see the errors and warnings directly
in the browser when running the test.

This commit adds the possibility to see all the logs if the URL of the
test page contains 'verbose=true' part.

Close #404.
feat #400 Using atpackager

The packager used during the open-source build of Aria Templates is now separated
in its own project called atpackager. Templates are now pre-compiled to javascript
classes during the build. Grunt version is updated from 0.3 to 0.4.

Closes #400
feat #407 improve ModuleCtrlTestCase

Improve ModuleCtrlTestCase by providing automatic creation and disposal of tested module.
By specifying `$controller` in the test's `$prototype` an instance of that class is generated before running the test.
The tester can then access the two variables `$moduleCtrl` and `$moduleCtrlPrivate`.
The public interface is also registered for asserting its logs, so there's no need to call anymore `registerObject`.

Close #407
feat #405 Error tool tip enhancement

Currently the logic for the error tool tip is contained within
aria.widgets.form.Input, the aim of this enhancement is to share code
efficiently between multiple types of widgets. Specifically for the
requirement of this feature, this means making the code for the error tool
tip not only available for "Input" type widgets, but also for "Action"
type widgets.

In addition, it must also be possible from within a template to have a new
widget property called errorTipPosition that will be used as the preferred
position for the error tool tip, if there is not enough available space
the framework will automatically calculate the best position for the error
tool tip. The property will be added for both "Input" type widgets and
also "Action" type widgets.

Close #405
refactor Error responsibility in aria.jsunit.Test

aria.jsunit.Test holds a list of error messages raised by extending classes, however the logic to deal with these errors is inside aria.jsunit.Assert
This commit simply moves code from one class to the other, errors are now part of Test and Assert is left with methods used by developers and not the test runner.

Close #403