Use concrete types in type aliases for Point, Dimensions, and Margins
Merge pull request #4 from evancz/pr

Use concrete types in type aliases for Point, Dimensions, and Margins
render: add static_ combinator

static_ is the equivalent of append except that it will append an
element only when its parent is created, and never after. Any selections
chained below the result will still be executed on every update.

Currently this is called static_ because of a bug in the Elm compiler.
Once that's resolved (already fixed in dev), it will be renamed
'static'.
render: drop root selection argument of render

Having separate selection arguments for the root and the body is no
longer necessary now that static_ exists.
render: Add nest operator

The nest operator is useful for composing views at the top level. It
will apply the first selection to the context to create a new context.
The second selection is then applied to the new context, with the new
context being the result of the entire expression.

It's not strictly necesary to implement nest nateively. It's actually
equivalent to the following:

  nest a b = a <.> (sequence update b)
render: document context updates
Merge branch 'render'
event: Stream type, and folde

A Stream is a Signal of events that can be created without providing a
default value. Instead, the folde function's accumulator is in essence
used as the default value.
event: Add handlers for all DOM 3 mouse events
Update export comments in D3 module
Update examples to work with Elm 0.12

Closes #5
Update README
Update README

Completely update the code example, and update the explanation of
render, since its arguments have changed.
rename static_ to static

The latest version of Elm allows you to use reserved words in JavaScript
as identifier names, so use static instead of static_. That _ is
awkward.
static: remove native impl of nest

nest can be expressed using chain and sequence, so just use that
implementation instead of the native one.
static: fix index issues with static

When using static, operators that are nested below it do not receive the
proper index and associated datum. This is because static requires,
conceptually, a new data bind that will not preserve the index of the
context.

In order to preserve the index, static iterates over the elements of the
context selection, which also provides each element's index in the
context selection. The coditional element creation logic is run, and
then the selection continuation is run on the result, except the index
of the parent element is passed to the continuation. This will be
propagated through to all other operators below the static operation.
Fix D3 version
Operators return optional strings

For those operators that are setting some attribute-like thing–i.e.
attr, style, and property–there must be a way to completely clear the
value. In JavaScript, you accomplish this by using the null value. In
Elm, this corresponds to a Maybe type.

Uses of thse functions that used to look like this:

  attr "class" (\d i -> "cls-" ++ show i)

should be updated to look like this

  fun attr "class" (\d i -> "cls-" ++ show i)

Previous uses of fun, should be replaced with opt. Uses of num and str
are unaffected.
Merge branch 'master' into event
event: update import syntax for latest Elm version