a basic instruction object

- provides new functionality to the basic PsiTurk() js object.
- most importantly PsiTurk().doInstructions(pages, callback) will create a "deck" of instruction screens and provides a simple way to navigate between them including forward and backward (if the user likes)
- all data is recorded about the sequence of pages visited
- when last screen is viewed, the callback is executed allowing you to take control of the next part of the experiment
- user can unbind events to override, allowing custom JS to run on any instruction screen (example will be provided in docs)
- object is totally optional and user could provide their own method for showing instruction if wanted
better protecting our users javascript namespace

- previously TaskData() and other internals were being entered into psiturk.js user's name space.  This patch attempts to make some of this internal to the PsiTurk() namespace.

- someone (@dmarkant or @jbmartin?) will need to help do the same thing with the remaining functions which are involved with Backbone.js (I'm afraid of breaking all that)
pythonic javascript?

there are few things in life I hate more than lines of code like that=this.  the point of that is to resolve ability about the context of this.  python uses self which kind of make more sense....
more cleaning of user's javascript namespace

- moving psiturk functions inside PsiTurk() object so they do not conflict with experiment designer's functions
- renamed some unused variables, etc...
- the default instructions object now records data in JSON format to the data string

rationale for last one: while generally we are agnostic about how data it stored, if you use our default object we have to make a choice.  json is nice IMHO because many languages can parse and includes explicit column names/descriptors with each field
reloading or navigating away should trigger same warning

currently we block reloading of script.  as @jhamrick point out this might not always be ideal.  in future should make this an option (see Issue #67).
Merge branch 'js-api-extensions' into calc_bonus
Add bonus calculation to stroop example

Still a bit broken - doesn't go to hit-complete yet.
Add computeBonus callback so experiment can finish

I sense I may not have done this in the best way though, will have to
consult!
Kill defunct instruction function I had re-added
Add comments to custom route
custom.py needs to be custom.py.txt so that .pyc files are not automatically compiled

- also reduced bonus to $.025 per correct trial so that people don't accidentally run a big tab while debugging
default instructions mention bonus

- ultimately might be nice to make stroop demo actually a good stroop experiment rather than having stand-in instruction, etc...  not a priority though
Switch datastring to UnicodeText for unlimited length
Merge branch 'calc_bonus' of https://github.com/NYUCCL/psiTurk into calc_bonus

Conflicts:
	psiturk/example/custom.py
Fix bug encoding non-unicode strings

This lets it just save the ascii strings, which seems to work.
Change fix for unicode encoding

Now converts data to unicode. Good if anyone wants to save unicode
characters in data in the future.
Merge branch 'dev' into calc_bonus

Conflicts:
	psiturk/models.py
Fix importing error

Was importing UnicodeText, not Text
Merge branch 'dev' into calc_bonus

Conflicts:
	psiturk/experiment.py
Add start to bonus function, and worker_list options

Need to see Accepted workers to do bonuses. Also added list-by-hit
option. And now that there's accept/reject by hit, removed the --all
option for those commands.