Make ScriptableDocument support JSON.stringify.
Fix style errors.

This patch fixes below style errrors.

error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/database/ScriptableQuery.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=16 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableUUID.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=11 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=30 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=35 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=42 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=49 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=79 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=94 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=105 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=128 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=140 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableFuture.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=155 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableConsole.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=11 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableConsole.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=15 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableConsole.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=19 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableConsole.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=23 column=6
error file=/home/sloan/workspace/beyond/core/app/beyond/engine/javascript/lib/ScriptableConsole.scala message=Method name does not match the regular expression '^[a-z][A-Za-z0-9]*$' line=27 column=6
Rename JSStaticFunction to JSStaticFunctionAnnotation.

JSFunction is imported as JSFunctionAnnotation to distinguish it from
JSFunction type alias. Use the same naming convention for JSStaticFunction to
make naming consistent.
Add Future.andThen function.

andThen applies the side-effecting function to the result of this future, and
returns a new future with the result of this future.

This method allows one to enforce that the callbacks are executed in a
specified order.
Make ScriptableDocument.findOne() succeed even when there is no matching data.

Currently, findOne method returns a failed future with
NoSuchElementException if there is no matching data. This behavior is
inconsist with find method - find method returns an empty array.

This patch makes findOne method return a successful future whose value
is null.
Fix a bug in ScriptableFuture.onSuccess method.

Currently, onSuccess callback of ScriptableFuture is not called if the
result is null because null is not matched with AnyRef.
Modify findOne example to check if result is null.

result can be null if there is no matching data.