Create simple data model and plot it

So far all we've done is simulate some very basic temperature data (100
days worth) and plotted it in a really simple chart.
Creates a class to handle main and range selector charts

The charts are not linked yet but we can display both of the charts.

Also created a helper class for configuring charts and their axes.
Creates a range annotation manager and links to main chart

Currently it's a really simple range indicator, which moves as you pan
and zoom the main chart. There is no interaction with the range chart
itself.
Dragging in the range chart now updates annotation

We've created a delegate protocol which contains a method which is fired
when the annotation is dragged. This is used to update the location of
the main chart.

The gesture recogniser is added to the glView subview because
annotations appear to be too small to register panning events (they are
1x1 px, with an affine transform). I suspect this will require fixing in
a later commit.

Don't currently have handles, or momentum.
Added simple handles on the range selector

These are really simple SChartAnnotation subclasses which add some lines
and guff. We add gesture recognisers to them to allow changing of each
end of the range selection independently.

We've also taken this opportunity to refactor the other range selector
gesture recognition, by creating another SChartAnnotation subclass which
dynamically changes it's size on transform updates rather than applying
the transform. This means that the annotation will have a size which
will allow pan gestures to be triggered within it.

The gesture code in the annotation manager needs refactoring - at the
moment the method handleHandlePan: is not particularly pleasantly named.
First pass at adding momentum to range selector

We create a class which is responsible for generic animation with
normalised distances. This is invoked when the pan gesture recogniser
has ended.

There is some space for refactoring since there is copy/pasted code in
the range manager. The endPosition calculation should be checked on a
device as well - this is very much down to the look and feel.
A spot of refactoring

Changed the argument order on the MomentumAnimation methods to make them
slightly nicer to use. And pulled out some common code into utility
methods in the annotation manager.
Sets an initial range for the selector

Also sets a minimum span for the selector, which prevents the handles
from getting too close together, or indeed crossing.

This is a little bit data-reliant, but this customisation is not taking
place in the utility classes, so it's allowed.
Adds a simple value line annotation

This follows the value with the highest yValue currently visible on the
chart.

We create a ValueAnnotationManager which controls the display and
positioning of the annotation. It needs to be informed when the
displayed range on the xAxis changes. Currently only horizontal lines
are shown, since we're dealing with timeseries. It would be trivial to
change to allow vertical lines too, but would require a series
monotonically increasing in y rather than x.

As part of this we've created a simple binary search for NSArray which
doesn't require the element you're searching for to exist in the array.
There are 2 methods, and some pretty basic unit tests.
Removed ShinobiCharts framework from git history

Readding it updates the project file trivially. The framework is in
.gitignore to allow other users to pull down a version and build against
it.
Changes retain to strong
Renames the handles to grippers

Although the annotation is still called a handle annotation, renaming
all the instances and interaction to gripper means we no longer have the
amazingly named `handleHandlePan:` method...
Fixes incorrect naming of settings plist