Drake function

This implements the "DrakeFunction" idea we'd discussed in #269. I'd like to get feedback about any and all aspects of it, so please, let me know what you think!

This could (probably) be merged in as is without breaking things - everything is contained in the `drakeFunction` package. The only exception is that I had to add the drake root folder to the path in `addpath_drake` in order to get `drakeFunction` on the path.

I don't think we would need to special case anything. `is_weighted` is set at construction based on whether or not a non-empty `Q` is supplied. Code using this class should never need to worry about it. I'll make it private. Am I missing something?