Change how rotation cascades for 2D entities

Previously when a parent rotated, it changed the origin and rotation of children directly.  This prevented independent rotation of children.

After this patch, children are rotated about their own origin, and shifted to the correct position relative to the parent.
Use event data in control component Twoway

Instead of polling the current keyboard state, use keyboard event data
Trigger event when particle animation finishes
Return value when setting crafty.asset(key, value)
Merge pull request #598 from mucaho/twoway-patch

Use event data in control component Twoway
Merge pull request #600 from mucaho/loader-patch

Return value when setting crafty.asset(key, value)
Merge pull request #599 from mucaho/particles-patch

Trigger event when particle animation finishes
Merge pull request #594 from starwed/rot

Change how rotation cascades for 2D entities
fix recent jshint warnings
Merge pull request #602 from mucaho/jshint_rotation_twoway

fix recent jshint warnings
Improve documentation for Crafty.viewport.bounds
Merge pull request #604 from starwed/bounds-docs

Improve documentation for Crafty.viewport.bounds
Use getTime method instead of implicit conversion

This doesn't change anything in the behaviour, but it encourages good js
practices.

See also performances http://jsperf.com/date-timestamp
Merge pull request #605 from potomak/feature/remove-new-date-conversion

Use getTime method instead of implicit conversion
viewport for IE9/10, let it can init again.

  I need to use Crafty.stop(), and then use init to restart it, actually the point is to init() again. It seems strange, but I encounter a situation that the Crafty appears in one div, then it must appear in another div. When it is in IE10, I can't init for a second time just because configurable default to be false.
Merge pull request #608 from txcodelife/develop

viewport for IE9/10, let it can init again.
Add `avoidCss3dTransforms` flag

CSS 3D Transforms are used to set DOM entities position, this should
increase performances as these operations are hardware-accelerated but
using them for positioning makes CSS effects unavailable.

By setting this flag to true you can force DOM entities positioning
using left and top CSS properties.
Merge pull request #609 from potomak/feature/optional-css-3d-transform

Add `avoidCss3dTransform` flag
Make audio.play() return the audio element used to play the sound
Fix bug when using Crafty.audio.stop on a specific sound