[Branch]: lightcurve_factory

This is a large re-work of LightCurve creation which is in it's own feature branch.

This PR is open because it provides a good forum for discussion.

Open Questions
---------------------

1. Currently I have removed the ability to provide default data, do we want to add this back in? We could provide an API like this `LightCurve(source='goes')` which will use the default data source?
> General concensus on this was that this is the correct behaviour. (At Dev hangout 24/3)

1. Do we want to support creation of LC's with different time ranges from a single factory call? Currently I have allowed only one time range to be specified. 


ToDo
-------

* [ ] - Make MapFactory use the new helpers `util` module.
* [ ] - Fix creation of a LC from (data, header) pair (and add tests).
* [ ] - Fix creation of LC from glob and dir (and add tests).
* [x] - Make test data and add tests that actually work.
* [ ] - Re-write guide and other docs
* [ ] - Port the new LC sources that have been added recently
* [ ] - Work out how to deal with the situation where you have one fits file with multiple HDUs all needed in one LightCurve `__init__`