Passing CRAN and expanding test coverage

Close #37. Close #38. Accomplish many of the tasks on #32. 

Add unit tests for all helper functions for `caretEnsemble`. Expand unit test coverage to smaller helper functions like weighted standard deviations. Fix `summary.caretEnsemble` to produce correct results for ensembled models. 

Still need to make the `predict.caretEnsemble` output more consistent across different options. 

Fixes a number of issues related to `varImp`, though it does not fail gracefully in the case when `varImp` method fails for a specific method passed to `train`. 

Added a new test suite using more diverse `train` methods and some missingness. This checks against some errors relating to building to specifically to the included test models and only increases the size of the package modestly. 
Ahhh, I see: setClass(
  "caretEnsemble",
  representation(
    models = "list",
    weights = "data.frame",
    error = "numeric"),
  S3methods=TRUE)

and setClass(
  "caretStack",
  representation(
    models = "list",
    ens_model = "train",
    error = "numeric"),
  S3methods=TRUE)

is creating S4 classes that can use S3 methods (I think).  This could be confusing roxygen, which might see predict.caretEnsemble and predict.caretStack but no corresponding S3 class definition.