High-level interface

This is the start of a high-level interface. The idea is that one can either:

* work with the low-level interface which is a close translation from C. This is the existing interface which consists of ``FITSFile`` objects and functions like ``fits_*`` that operate upon them. 

* work with the high-level interface: ``FITS`` objects and methods that act upon them. The advantage of this interface is that it will have fewer functions to remember, hides the notion of the "current HDU", does more safety checks to protect against segfaults, and provides some introspection tools (e.g., show).

Two things to note in this PR:

* The low-level and high-level code has been split into two files: `cfitsio.jl` and `hdutypes.jl` (for lack of better names). These are `include`d in `FITSIO.jl`, which is now quite short. That is: most of what was `FITSIO.jl` is now in `cfitsio.jl`. I found this division into multiple files necessary for my sanity.

* I removed the `fitsread` function as it is now fairly easy to do the same thing with the high-level interface and it is more correct (e.g., returns the actual data type instead of always `Float64`).

The commit messages should give a bit more detail on what else has changed.

This is somewhat a work-in-progress, but I wanted to get it back into master before i get too far along.

Closes #3.