Make it possible to create a Future from scala.concurrent.Future.

This patch is preparation for collection methods(map, filter, recover,
transform, etc.) of JavaScript Future API.
Implement map method of JavaScript Future.

This method takes unary function and returns a new future with the given
function. If the original future is failed, new future will contain the
original exception. And if the given function throws an exception, it returns
the failed future.
Implement filter method of JavaScript Future.

Create a new filtered future. If the condition returns false, the new future
becomes failed. And the new future becomes failed when the current future is
failed.
Implement recover method of JavaScript Future.

Create a new successful future with the given callback when the current future
is failed. And if the current future is successful, the new future contains the
same result as the current future.
Implement flatMap method of JavaScript Future.

Similar to map but it takes a function that returns a future. The result is the
future returned by the function.
Implement transform method of JavaScript Future.

Create a new future. This method takes two functions, the first function is
applied when the current future is successful, and the second function is
applied when the current future is failed.
Pass only the exception value in failure callback when the exception is RhinoException.

Currently, a failure callback receives a concatenated string with the exception
value and the file info where the exception occurs, because ScriptableFuture
calls the failure callback with Throwable.getMessage.

This patch makes ScriptableFuture pass RhinoException.details.
Implement UserMixin.

User collection and its functionality can be used in several
controllers, and for reusability they should be separated into an
independent mixin.
Unify response format of User and Session controllers.

The Unity game engine can't parse a response body of non-200 response,
and this patch implement a wrapper to form a response as a JSON object
containing a 'status' field.
Implement user login handler.

Until now a user's password hasn't been checked for login. This patch
implements the login functionality including checking a username and
password.
Implementing testcases for User and Session controllers.

Add testcases and helpers to write a testcase into
ApplicationSpec.scala.