subset_dshape of index::int ds::record
subset_dshape using list as index
add IndexCallable
DataShape.subarray always returns a DataShape
move isdimension from user to coretypes
move IndexCallable from util to utils

OK, this is a dumb move, I'm a bit frustrated though.
To me util/utils.py is meant to be a place with general utilities that
don't depend on the core functionality.  In datashape util is a
collection of user facing tools that depend on all of datashape.  We
need a place for the former.
subshape method on DataShape