Fix context.StatementRef

Resolves #91

Supersedes https://github.com/RusticiSoftware/TinCanJS/pull/94
We can do this check on the original object rather than doing all of the properties into the result and then deleting. It also needs to be an error rather than a silent ignore. In my commit I moved the failure open to be immediate when it occurs, and turned it into an exception. We have the precedent of an exception occurring in an `asVersion` method already in ContextActivities.js so we should be okay to do so here as well.