Add Array Type

This addresses Issue #13.  Notice that Coerced is changed to allow coercion of default values.  This removed the need for `lambda : ()` in the call to `Coerced.__init__`.   

I will submit another issue about using this pattern in general to provide coercion behavior for Values.

The following test passes:

```python
from atom.api import Atom, Array
import numpy as np

class Test(Atom):
    arr = Array([-1.0, 1.0, 0.0])
    arr2 = Array([1.], kwargs=dict(dtype=np.int))

t = Test()
assert isinstance(t.arr, np.ndarray)
assert t.arr.dtype == np.float64
assert isinstance(t.arr, np.ndarray)
assert t.arr2.dtype == np.int
```