Lock expression enables locking records

Adds a lock expression to the grammar for event expressions
and metric expressions - a string that can be appended automatically
to an expression prior to parsing that limits the results the
expression has access to.

This doesn't let us open the Cube server to the public directly, but
it does allow us to rewrite the expression in requests through an
intermediate service to help prohibit access:

  expression= sum(nginx_requests.size):nginx_requests.eq(user, 'rocky')

limits the sum to the nginx_requests with a 'user' attribute of 'rocky,'
assuming, you store that parameter in nginx_requests, of course. So, we can
allow the client to send an expression, tack on the lock expression with our
web app after authenticating the user, and then forward the request to
cube and send back the response to the client while limiting access to the
underlying records.

Utilizes the core filter parsing already in place.