Create a module for sparse stuff

The sparse implementation internally has a lot of other functions that are not needed in Base. Also, it is getting big enough, that having its own module helps define clearly its relationship with the rest of Base. This is also a first step in having a well-defined well-documented sparse matrix API for the end-user. This reorganization will also make it much easier to extend the sparse matrix capabilities.

@dmbates I started with a minimal interface to expose, and the list may need expansion. This pull request is to start such a discussion.