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.
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
A little memoization for the choices_count method.
Make the test for max_selected_options happen _before_ the option
gets selected in the form field.

This fixes #977
Merge branch 'master' 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
	coffee/lib/abstract-chosen.coffee
Remove a white space thing.
Merge pull request #1171 from harvesthq/tjarratt-master

Ensure choice count is reflective of actual selected item count.