Add ScriptableSeq and ScriptableMap.

- ScriptableSeq is a wrapper for scala.collection.Seq instances that allows
developers to interact with them like it was a native JavaScript array.
- ScriptableMap is a wrapper for scala.collection.Map instances that allows
developers to interact with them like it was a native JavaScript object.

No put and delete methods of JavaNativeObject are overridden so that only
immutables collections are supported.
Make ServerToHandle trait sealed.

When a trait is "sealed" all of its subclasses are declared within the same
file and that makes the set of subclasses finite which allows certain compiler
checks.
Remove unused emptyRoutingTable.
Fix a typo: def -> val.
Make RoutingTableBuilder convertible to Json.

Define Writes[RoutingTableBuilder] which implicitly converts a
RoutingTableBuilder instance to Json.
Add return type to the writes method of Writes[RoutingTableBuilder].

This fixes scalastyle errors.
Add MongoDB binary path for Windows.
Add SystemMetricsActor.

SystemMetricsActor connects to the JMX agent and gets system metrics such as
system load average.
Add tools.jar to classpath only on Windows and Linux.

Mac OS X bundles tools.jar with classes.jar so there is no need to add
tools.jar. But on Windows and Linux, tools.jar is not bundled in rt.jar, so
tools.jar must be added to classpath separately.

See http://stackoverflow.com/questions/12409847/how-to-add-tools-jar-as-a-dynamic-dependency-in-sbt-is-it-possible
Add messages to SystemMetricsActor to retrieve memory usage.

Use MemoryMXBean to to retrieve heap and non-heap memory usage from the JMX
agent.
Add sigar to SBT library dependencies.

sigar provides system monitoring data such as:
- System memory, swap, cpu, load average, uptime, logins
- Per-process memory, cpu, credential info, state, arguments, environment, open files
- File system detection and metrics
- Network interface detection, configuration information and metrics
- Network route and connection tables

- Native classifier is used because sigar includes native libs
- copyNativeLibraries task is added to unzip sigar native libraries under target/native_libraries/

See
http://stackoverflow.com/questions/14966414/including-hyperic-sigar-library-within-jar-while-using-sbt-assembly-for-scala-pr
http://stackoverflow.com/questions/19303553/adding-libsigar-shared-library-in-sbt-project-without-using-java-library-path?rq=1
Add messages to SystemMetricsActor to retrieve swap memory usage.

Use SigarSwap MBean to retrieve swap memory usage.
Use an empty array as default data of RoutingTable in ZooKeeper.

Currently, JsonParseException is often thrown. This is because I parsed data in
the RoutingTable node only if it exists. I expected znode has null data when
znode is created without any data passed in, but Curator passes the client IP
as default if no data is given.

This patch passes an empty JsArray as data when RoutingTalbe node is created.
Override configuration with mode specific cofiguration.
Don't hardcode fallback value for configuration.

Hardcoded fallback values are redundant because fallback values are already
given in application.conf.
Extract config related methods from Global to BeyondConfiguration.
Use mode specific configurations.

application.conf and zoo.cfg now have mode specific configurations:
application.{mode}.conf andz zoo.{mode}.cfg. Here mode can be dev, prod and
test.
Extract Rhino Scala binding classes as rhinoScalaBinding project.
Turn off Scalastyle NullChecker for rhinoScalaBinding.

Add a separate scalastyle-config.xml for rhinoScalaBinding. Using null is
unavoidable to interoperate with Rhino library written in Java.
Move Actor names to each actor's companion object.