First draft of missing values by sentinels

Sentinels represent missing values (NA) by rarely used values within the
domain of a datatype.  E.g. NA_Bool is represented by the integer value
`2`.

We extend arithmetic and mathematical operations to respect the new
semantics of these special values.  Each operation is now accompanied by
an `isNA` check.

```
Example
-------

julia> x = Option(1)
1

julia> x + 3.14
4.140000000000001

julia> typeof(x + 3.14)
Option{Float64}

julia> x = Array{Option{Int32}}([1, 2, NA, 4])
4-element Array{Option{Int32},1}:
 1
 2
 NA
 4

julia> x[4] = NA
NA

julia> x
4-element Array{Option{Int32},1}:
 1
 2
 NA
 NA

julia> mean(x)
NA

julia> mean(nonnull(x))
1.5
```