Custom subview protocol

I've added a protocol to the custom subviews for pull to refresh that allows them to receive state change updates for animations, view updates etc (eg. rotating arrows and text changes). These commits are based on 0.4.1 tag.