When using the `package` syntax without `version`, dbt returns a vague error message

## Issue

### Issue description
When using the `package` syntax without `version`, dbt returns a vague error message:
```
$ cat packages.yml
packages:
  - package: fishtown-analytics/dbt_utils
$ dbt deps
Running with dbt=0.14.0-a1
Encountered an error:
'version'
```
### Expected result
An error message more like:
```
No version was specified for package "fishtown-analytics/dbt_utils"
```
(Even that's not super helpful tbh)

diff --git a/core/dbt/contracts/project.py b/core/dbt/contracts/project.py
index 206f82cda..fc7cba84e 100644
--- a/core/dbt/contracts/project.py
+++ b/core/dbt/contracts/project.py
@@ -243,7 +243,7 @@ REGISTRY_PACKAGE_CONTRACT = {
             'description': 'The version of the package',
         },
     },
-    'required': ['package'],
+    'required': ['package', 'version'],
 }
 
 
diff --git a/core/dbt/task/deps.py b/core/dbt/task/deps.py
index 18ba004ae..307505c0c 100644
--- a/core/dbt/task/deps.py
+++ b/core/dbt/task/deps.py
@@ -118,6 +118,11 @@ class RegistryPackage(Package):
     SCHEMA = REGISTRY_PACKAGE_CONTRACT
 
     def __init__(self, *args, **kwargs):
+        if 'version' not in kwargs:
+            dbt.exceptions.raise_dependency_error(
+                'package dependency {} is missing a "version" field'
+                .format(kwargs.get('package'))
+            )
         super(RegistryPackage, self).__init__(*args, **kwargs)
         self._version = self._sanitize_version(self._contents['version'])
 
diff --git a/test/unit/test_deps.py b/test/unit/test_deps.py
index 06eb163e3..80170bb22 100644
--- a/test/unit/test_deps.py
+++ b/test/unit/test_deps.py
@@ -73,7 +73,7 @@ class TestHubPackage(unittest.TestCase):
         self.assertEqual(a.source_type(), 'hub')
 
     def test_invalid(self):
-        with self.assertRaises(dbt.exceptions.ValidationException):
+        with self.assertRaises(dbt.exceptions.DependencyException):
             RegistryPackage(package='namespace/name', key='invalid')
 
     def test_resolve_ok(self):
['core/dbt/task/deps.py', 'core/dbt/contracts/project.py', 'test/unit/test_deps.py']