FIX: Do not rely on strides for contiguous arrays

When an array is contiguous in memory but has `shape[dim] == 1`, then
its `strides[dim]` is not really used, so it can be considered arbitrary
even if the array is contiguous. This is generally true for 0-sized arrays.

If there is no chance of 0-sized (or 1-sized and 1-dimensioal) arrays, then
this code is perfectly correct in current numpy. But its a dangerous
design choice and it would be nice to be able to change numpy at some point.
ENH: use broadcasting, not tile

It's faster and doesn't change anything
ENH don't import * in utils __init__.py
cosmit: remove fourth quote
Call DecisionTreeRegressor instead of Tree
COSMIT Remove duplicated assignement
Use the check_input argument
DOC : add description of check_input args
DOC explain parameter estimators_
DOC explain parameter estimators_ (2)
ENH Move parameter checking to fit
COSMIT
FIX casting bug
ENH preserver contiguous property

The a[:,np.newaxis] operation does not preserve contiguousity, so we shift to
reshape which preserve this one. For an example see below:

In [1]: import numpy as np

In [2]: np.__version__
Out[2]: '1.6.2'

In [3]: a = np.array([1,2,3])

In [4]: a.flags
Out[4]:
  C_CONTIGUOUS : True
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False

In [5]: a[:,np.newaxis].flags
Out[5]:
  C_CONTIGUOUS : False
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False

In [6]: a.reshape(-1,1).flags
Out[6]:
  C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : False
  WRITEABLE : True
  ALIGNED : True
  UPDATEIFCOPY : False
COSMIT
DOC describe reasons for reshape
PEP8
FIX: perform transition from tree to DecisionTreeRegressor
FIX feature importance computation + Enable smoke test of feature importances
Update whats new