Added return operator

Added return operator to the PlanOut language and cleaned up code for
dealing with disabling logging.

in_experiment is a magic variable that scripts can set to turn off
logging.  It is often used in conjunction with checks to external
gating services, like this:

```
in_experiment = false;
if (checkIfUserIsInTheUS) {
  in_experiment = true;
  # do stuff
}
```

This makes for some hairy code.  This diff adds a return operator,
which short circuits code and sets the `in_experiment` magic variable
to the return value.  This makes it so that most users never have to
know about the `in_experiment` magic variable.

The semantics of the operator are such that:

```
x <- 22;
if (userid > 10) {
  return false;
} else {
  return true;
}
y <- 99;
```
always sets the variable `x` and never sets the variable `y`.  When
`userid` is greater than 10, then the experiment is not logged.

This was tested by compiling the script and typing
```
In [1]:

from planout.experiment import SimpleInterpretedExperiment
import json
In [21]:

from os import popen, system
import json

def compile(s):
    "compile planout code using planout.js compiler"
    with open('tmp.planout','w') as f:
        f.write(s)
    # the error handling here could be better...
    d = json.loads(popen('node ../../compiler/planout.js
tmp.planout').read())
    system('rm tmp.planout')
    return d

class MyExp(SimpleInterpretedExperiment):
  def loadScript(self):
    self.script = compile("""
    x <- 22;
    if (userid > 10) {
      return false;
    } else {
      return true;
    }
    y <- 99;
    """)
In [26]:

e = MyExp(userid=30)
print e.get_params()
e.in_experiment
{u'x': 22}
Out[26]:
False
In [27]:

e = MyExp(userid=0)
print e.get_params()
e.in_experiment
{u'x': 22}
Out[27]:
True
```