scripts/ec2-simulator: Make default launch index zero

First instance that's launched has an launch index of zero. Use that as
a default for the EC2 simulator.

Reviewed-by: Tomasz Grabiec <tgrabiec@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
cloud-init: Add launch index, reservation ID, and hostname to data source

This adds launch index, reservation ID, and hostname to the data source
API. I wasn't able to find GCE equivalents for the first two so they
just throw an exception.

This is needed by the DataStax reflector service.

Reviewed-by: Tomasz Grabiec <tgrabiec@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
cloud-init: JSON support

Import JSON library by Dropbox:

  https://github.com/dropbox/json11

Reviewed-by: Tomasz Grabiec <tgrabiec@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
cloud-init: DataStax reflector support for Cassandra

This adds DataStax reflector support for discovering Cassandra seed
nodes on EC2. It is configured similar to DataStax AMIs. You specify a
cluster name and total number of nodes in user data:

  cassandra:
      clustername: Pekkas Cluster
      totalnodes: 2

You then launch as many instances of the OSv Cassandra AMI. Cloud init
will then query DataStax reflector service for seed nodes. In practice,
cloud init waits until node 0 which always acts as the seed node has
registered itself. This is similar to what DataStax AMI does:

  http://www.datastax.com/documentation/cassandra/2.0/cassandra/install/installAMIConnect.html

We don't an initial token so Cassandra is left with the job of
partioning the data.

The patch has been tested against EC2 simulator only.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>