Fix external js updates to multi-selects

I ran into some issues where updated multi selects from external
javascript would frequently get out of state because the .choices
variable on the Chosen object was no longer the same as the actual
number of options selected.

Instead of having a global variable on the chosen jquery object
(which is relatively fragile because of external changes to the
select element), just calculate it as needed. It's not called often
and this is a fairly fast lookup for jquery and prototype, so I think
this is a safe change.
Gruntfile mimics previous Cakefile, also built using Coffee to match existing codebase.
Updated documentation.
Merge branch 'master' of github.com:tjarratt/chosen into tjarratt-master

Conflicts:
	chosen/chosen.jquery.js
	chosen/chosen.jquery.min.js
	chosen/chosen.proto.js
	chosen/chosen.proto.min.js
	coffee/chosen.jquery.coffee
	coffee/chosen.proto.coffee
Remove initial @choices variable declartion (blows away our function)
Loop through options instead of using proto/jquery selectors

Testing in Chrome showed this to be anywhere from a 5 to 12 time
speed improvement. It also lets us have one method in abstract instead
of 2.
Rename the choices method to reflect it's actual return value
Fix a reference to the deprecated choices variable.
Re-build minified prototype
Use the better supported offsetWidth property to get a fields width

Fixes #212
Do not highlight or be able to select disabled options
Do not highlight disabled options when using arrow keys
Allow for optgroup to be disabled
Updated styles on disabled input
just typo
Merge pull request #1195 from yaskevich/patch-1

Fix Protoype typo
Re-build the js files after Cakefile change.
Fix typo in the License file.
Update example page to show current default settings.
Merge branch 'master' into firefox-width-disparity

Conflicts:
	chosen/chosen.jquery.min.js
	chosen/chosen.proto.min.js