There are not many features/enhancements done in Winter'16 in ForceDotCom section as this release is completely to launch their new Lightning UI. See this post to know more about Lightning UI.
Few of the stuff are mentioned below that I think are major ones:
Improve Performance and Reliability with Platform Cache
Introduction of Cache: The Cache namespace in Apex lets you specify what to cache and for how long, without needing to use custom objects and settings or overloading a Visualforce viewstate. Also use org partitions to improve performance by distributing cache space so some apps or operations don’t steal capacity from others. This feature is available in both Lightning Experience and Salesforce Classic.
There are two types of cache:
Session cache: Stores data for individual user sessions. For example, in an app that finds customers within specified territories, the calculations that run while users browse different locations on a map are reused.
Org cache: Stores data that any user in an org reuses. For example, the contents of navigation bars that dynamically display menu items based on user profile are reused.
Session data is cached alongside user sessions. Org data is accessible across sessions, requests, and org users. The session cache expires when its specified time-to-live (ttlsecs value) is reached, or when the session expires, whichever comes first.
Set Recipients of Email Notifications for Unhandled Apex Exceptions
Configure email addresses that receive emails when your Apex code encounters unhandled exceptions. Previously, these emails were sent only to the developer who’d last modified a failing class or trigger. Now you can also notify users of your Salesforce org and arbitrary email addresses.
Make Unlimited Concurrent Callouts to Internal Salesforce URLs
Make unlimited concurrent callouts to endpoints in your Salesforce org’s domain. You no longer need to live in fear of hitting limits when you set up cross-org integrations to synchronize data between your orgs. You can also make unlimited callouts back into your own org to access the Metadata API, use describeLayout(), and so on.
Previously, you could make only 20 simultaneous requests to URLs within one host, including to URLs within your org’s domain. That limit has been lifted for internal URLs. However, you can still make only 100 total callouts in a transaction, including to internal URLs.
getContent() callouts to Visualforce pages are exempt from the per-transaction limit.
Make Calls to PageReference.getContent() in Asynchronous Apex
Make calls to the getContent() and getContentAsPdf() methods of the PageReference class from within asynchronous Apex such as Batch Apex, Schedulable and Queueable classes, and @future methods. This allows you to design much more flexible and scalable services that, for example, render Visualforce pages as PDF files.
Additionally, calls to getContent() and getContentAsPdf() that access internal Salesforce URLs are treated as internal callouts, and therefore not subject to callout limits
Create More Roll-Up Summary Fields per Object
Create 150 percent more roll-up summary fields with an increased limit per object. The default limit on roll-up summary fields per object has been increased from 10 to 25. Gain more insights about related records by adding more roll-up summary fields to your standard and custom objects.
Set Approval Process Locks and Unlocks with Apex Code
New lock() and unlock() methods in the System.Approval namespace let you lock records by passing in record IDs or sObjects. Previously, you could set approval-process locks and unlocks only through the Salesforce user interface.
To enable this feature, from Setup, enter Process Automation Settings in the Quick Find box, then click Process Automation Settings. Then, select Enable record locking and unlocking in Apex.
View Apex Hammer Execution Status (Generally Available)
Salesforce runs your organization’s Apex tests in both the current and new release, and compares the results to quickly identify issues for you.
The page displays the results of running Apex tests for your organization, in both the current and new release, and compares the results. Salesforce uses these results to identify any issues to resolve before the release. For a list of the data displayed and how to run your tests, see “Apex Hammer Execution Status” in the Salesforce Help.
System.SObject Class - recalculateFormulas()
Recalculates all formula fields on an sObject, and sets updated field values. Rather than inserting or updating objects each time you want to test changes to your formula logic, call this method and inspect your new field values. Then make further logic changes as needed.
Share Picklists Across Objects and Fields with Global Picklists (Pilot)
Efficiently reuse a single list of values for multiple custom picklist fields. Global picklists make it easy to share picklists across objects by letting you create picklist fields based on a master list of values. And, they keep your picklist data clean by preventing users from adding erroneous or redundant values through the API. This feature is available in both Lightning Experience and Salesforce Classic.
To know more about them, go through Winter' 16 release notes.