moved some LIMS::Base methods out to LIMS::Role::Base; new cron mail_reports.pl - shares some methods from LIMS; exempted http requests to Chart methods from authentication to allow mail_reports.pl script to generate charts
moved Devel::Cycle find_cycle() code from cgiapp_init to teardown, and made it permanently active for non-fastcgi requests - found and fixed many circular refs inside callback subs; new resources menu items; new file-uploader scripts
added Base::is_lab_staff() method; access to lab test history now restricted to lab staff; C::Roles::DataMap::user_locations_map uses user_locations table instead of email_contacts table so that non-network users get a new diagnosis list
added format_firstname callback in templates to enable user-configurable special formatting to first_name - uses format_first_name sub in render_view + format_firstname.yml; changed user_location.region_code to varchar(5) to allow longer parent organisation codes
Outreach lab_results validation; modified Base::js_validation_profile() to accept direct hand-in of profile for Outreach validation profiles; C::Outreach::lab_results(); merged C::Report::_get_outreach_data() with C::Report::outreach(); patched C::Roles::FormData methods to load dfv_defaults from lims_config