scipy import bug
#### Issue description
When calling `pennylane.ops.cv.Rotation._heisenberg_rep([phi])` if one does not explicitly import the block_diag function via `from scipy.linalg import block_diag` there is an error.

```pennylane/pennylane/ops/cv.py", line 109, in _rotation
    return sp.linalg.block_diag(1, temp) # pylint: disable=no-member
AttributeError: module 'scipy' has no attribute 'linalg'
````

This is not a bug in scipy as it is a design choice not to import top level components such as `linalg` as they are not sub-modules but directories. Read this [discussion](https://groups.google.com/a/continuum.io/forum/#!topic/anaconda/mMiv9QslB4E).

I encountered this when I wrote an independent test for the ops #99 

#### System information

* **Operating system:**
  MacOS 10.14.3 

* **PennyLane version:**
  master

* **Python version:**
Python 3.7.2 (default, Dec 29 2018, 00:00:04)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin


* **NumPy and SciPy versions:**
  NumPy 1.15.0
  Scipy 1.2.1

* **Installation method:**

  Installed using  `python setup.py develop`on latest master.

diff --git a/pennylane/ops/cv.py b/pennylane/ops/cv.py
index a50cb090a..c0f54fadc 100644
--- a/pennylane/ops/cv.py
+++ b/pennylane/ops/cv.py
@@ -78,7 +78,7 @@ Code details
 ~~~~~~~~~~~~
 """
 import numpy as np
-import scipy as sp
+from scipy.linalg import block_diag
 
 from pennylane.operation import CVOperation
 
@@ -106,7 +106,7 @@ def _rotation(phi, bare=False):
     temp = np.array([[c, -s], [s, c]])
     if bare:
         return temp
-    return sp.linalg.block_diag(1, temp) # pylint: disable=no-member
+    return block_diag(1, temp) # pylint: disable=no-member
 
 
 class Rotation(CVOperation):
['pennylane/ops/cv.py']