Update table headers to freeze panes.
refs #45
Merge branch 'refactor'

Conflicts:
	opal/templates/opal.html
Remove vim key bindings
Ensure user can't scroll off bottom of table
Ensure tag updates are available immediately

Addresses similar issue to #97
Don't show microbiology input on list view

Addresses part of #90
Store visible rows separately to list of patients

Addresses bugs reported in #97
Remember which list was last open

Addresses #90 point 4
Put patient detail in <table>

Addresses #90 point 5
Fix tagging on single patient view

Should finally resolve #97
Make fields clickable in single patient view

Addresses #84
Implement discharge/archive functionality

Addresses #92
Remove unused opal.js
Refs #45 Update call time of the sticky table headers initialisation.

It turns out that Angular will not give you a callback when a template is done rendering
by design. (See the discussion at [1][2])

As a mitigation strategy, we set a directive on the table which watches for assignment,
and then calls our jQuery plugin on "tables" at that time.

This WFM, but is not guaranteed to work by upstream, and shouldn't be viewed as more than
a temporary solution.

[1] https://github.com/angular/angular.js/issues/1306#issuecomment-8200414
[2] https://groups.google.com/forum/?fromgroups=#!topic/angular/SCc45uVhTt8
Rework archiving

Addresses #102
Merge remote-tracking branch 'origin/master'
Tweak archiving

Addresses #102
Get search working properly with angular

Also addresses #91
Minor tweaks for #102
Replace Plan and Discharge with ToDo

Addresses part of #105