Updates flx.py to be more Pythonic

* String literals for the file templates are now just one string
  instead of a list of strings.

* Variables in the templates are interpolated into the strings
  rather than concatenated.

* The project directory is created if it doesn't yet exist.

* The script now generates proper file and directory paths
  for Windows, Mac, Linux.

* The comment generated in Default.css is now commented out.
Suggested fix for Issue #206

Using the following function names results in Migration Issue warning
from Flash Professional:
onKeyUp, onKeyPress, onKeyDown, onMouseDown, onMouseUp, onMouseMove
https://github.com/AdamAtomic/flixel/issues/206

Replaced all occurances of those names with:
handleKeyUp, handleKeyPress, etc.
(I hope I got them all!)
Fix for issue #214

FlxU.formatArray() would include the first element twice:
https://github.com/AdamAtomic/flixel/issues/214
Added `super.destroy()` to all overridden `destroy()` methods

Fixes GitHub issue #171
https://github.com/AdamAtomic/flixel/issues/171

In some places, `super.destroy()` was not required. For instance, some
classes extended `FlxBasic` which does not have any content in the
`destroy()` method.

However, just to be safe (and in case that function gets populated at a
later date), calling super was added anyway.
fixed #11, #61, AdamAtomic/flixel#170, AdamAtomic/flixel#221 AutoDestroy parameter in FlxSound loadEmbedded and loadStream does nothing
Replaced indentation of spaces with tabs

Several spots used 4 spaces rather than a tab to indent lines of code.
This has been fixed in FlxSound (TODO: Check elsewhere for same occurrence)
Merge pull request #76 from IQAndreas/fix_issue_206

Fix issue #206 - Migration issues if published by Flash IDE
Refactored stopping and cleaning up FlxSounds

Removed repetitious code for stopping and cleaning up the old channel,
and moved it all to a new function `cleanup()`.
Add `gitignore`

Removes:
 - ActionScript IDE project and workspace data
 - ActionScript binary folders
 - Windows "noise"
 - OSX (MAC) "noise"
 - Linux hidden and backup files
Merge pull request #73 from IQAndreas/fix_issue_171

Fix issue #171 - Added `super.destroy()` to all overridden `destroy()` methods
Merge remote-tracking branch 'IQAndreas/fix_issue_214' into dev
Refactored `FlxObject::preUpdate()` to remove uneccessary code

 - Combined two `if` statements (one of them uneccessary)
 - Replaced an uneccessary `a=a-b` with `a-=b`
Remove uneccessary code in FlxSound

According to [the documentation](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/SoundChannel.html#position):

> If the sound is looped, position is reset to 0 at the beginning of each loop.

So I removed a block of code that was simply unecessary.
Major FlxSound refactoring

- Removed oodles of duplicate code.
- Changed the way pausing sounds works.
Changed ambiguous variable name `Object`

Seriously, Adam? Naming variables the same name as classes is a big no-no!
fixed FlixelCommunity/flixel#8, AdamAtomic/flixel#224 FlxTilemap.ray() result value always null

I believe this issue was caused by the user mistakenly passing in a null pointer. I've just updated the code slightly to make it more obvious how it works, and to remove an unnecessary FlxPoint creation.
FlxObject now stops when it reaches the end of its path

Also:
 - Avoided repetitious code (and made it clearer)
 - Fixed minor typo in ASDoc
Prevent passing `null` to FlxObject

If null is passed, Flixel will log a warning,
and as expected, will return the object passed in (null).

Resolves the following issues:
 - https://github.com/FlixelCommunity/flixel/issues/65
 - https://github.com/AdamAtomic/flixel/issues/163
Merge pull request #81 from IQAndreas/dev_add_gitignore

Add `gitignore`
Merge pull request #80 from moly/fix_issue_170

AutoDestroy parameter in FlxSound loadEmbedded and loadStream does nothing