Fixed indentation in README
Merge pull request #554 from L8D/patch-1

Fixed indentation in README

Unindents the sample code.
Remove grunt-cli dependency

grunt-cli should be installed globally using `npm install -g grunt-cli`.

From grunt-cli README:

> If you don't have administrator rights, you may need to install
> grunt-cli locally to your project using
> `npm install grunt-cli --save-dev`. Unfortunately, this will not put the
> grunt executable in your PATH. You'll need to specify its explicit
> location when executing it, eg: `./node_modules/.bin/grunt`.
>
> Note: Using grunt-cli in this way is unsupported.

Source: https://github.com/gruntjs/grunt-cli#installing-grunt-cli-locally

See also https://github.com/craftyjs/Crafty/commit/44eb78836dc074f3e33f669fe7a7ce150e10daaa#commitcomment-4263105
Merge pull request #555 from potomak/feature/remove-grunt-cli-dependency

Remove grunt-cli dependency
IE8 viewport code: Use a global event instead of a listener entity

The advantage of this approach is: IE8 code has the same number of
entities as other browsers, so Crafty('*') behaves predictably etc.
Also, this change removes a layer of unnecessary abstraction /
complexity.
Merge pull request #558 from sbyrnes321/viewport

IE8 viewport code: Use a global event instead of a listener entity
fix unit-tests to avoid false-positives in IE8
Merge pull request #559 from sbyrnes321/IE8tests_take2

fix unit-tests to avoid false-positives in IE8
Fix jshint warnings

Note: I left an error on core.js because it's there to handle
components modules definition, but it should be fixed using AMD, or
CommonJS, or an alternative method.

```
[L1604:C10] E006: Unexpected early end of program.
})(window,
>> Expected an identifier and instead saw '(end)'.
>> Expected ')' and instead saw ''.
>> Missing semicolon.
```

I left some *warned* code:

 * some code on loader.js (I suggest using a different loading strategy)
 * intro.js, outro.js
 * evals on storage.js

See #557

Note about `===` vs `==`
Changing `value == null` to `value === null` as suggested by jshint is
semantically different as `value == null` is true also if `value` is undefined.
Some `== null` were checking also for undefined variables, that's why some
`value == null` have been changed to `typeof value === 'undefined'`.
Fix image loader on IE; add loader test

`obj.src = ""` triggers the error event on IE while it doesn't on webkit
so adding a check for the type of browser fixes the error.

See #549 for more details.
Merge pull request #556 from potomak/feature/fix-jshint-warnings

Fix jshint warnings

Missing semicolons, non-strict equality checks, confusing variable declarations, etc.
refactor Draggable code

This is more memory-efficient -- All helper functions only exist once,
not a separate copy for each draggable entity. It's also easier to read
(in my opinion).
Merge pull request #563 from sbyrnes321/drag

refactor Draggable code
Delete empty file
Merge pull request #565 from kevinsimper/develop

Delete empty file - JavaScript.js
CommonJS approach
Delete php build script and crafty-local.js
Grunt watch task for continues building the crafty.js file.
Provide source-map support for a development version of Crafty.js
Update `getVersion` method

Using `require` is possible to dinamically get library version from
package.json `version` property.